2009-08-14 3 views
3

J'ai une application ASP.NET fonctionnant sous Windows 2003 qui doit communiquer avec une base de données DB2 qui réside sur le mainframe. Nous avons installé le pilote DB2 Client v9.5 sur notre serveur afin que l'application puisse effectuer la connexion et travailler avec la base de données. La chaîne de connexion pour se connecter à la base de données contient le nom d'utilisateur et le mot de passe, ce n'est pas une connexion approuvée.DB2 Client v9.5 sur Win 2003 Prend beaucoup de temps pour établir la connexion

Pour être clair, nous utilisons le fournisseur .NET DB2 et non OLE DB, ODBC, etc.

Ce que nous avons remarqué est que lorsque l'application ASP.NET tente de faire la première connexion DB2, cela prend beaucoup de temps, environ 20 secondes. Après avoir parlé à l'un de nos administrateurs de bases de données résidents, ils ont dit que cela pouvait être dû au fait que le pilote DB2 essayait d'authentifier le compte d'utilisateur utilisé pour se connecter à la base de données, par rapport à Active Directory.

Leur solution à ceci était de créer un compte d'utilisateur local sur le serveur Win2003, avec le même nom que le compte d'utilisateur qui est utilisé pour établir la connexion. Le compte d'utilisateur local ne doit appartenir à aucun groupe ACL et il peut être désactivé.

J'ai essayé cette solution, et à ma grande surprise, cela a fonctionné. La connexion a été établie en quelques millisecondes. Ce qui m'inquiète, c'est que cette "fonctionnalité" semble être une faille dans le pilote DB2, et que toute nouvelle version de ce pilote pourrait empêcher cela de fonctionner à nouveau.

Est-ce que quelqu'un sait s'il existe un paramètre que nous pourrions définir dans le pilote DB2 afin qu'il n'essaie pas de s'authentifier avec Active Directory? Je me sentirais plus à l'aise d'utiliser ce paramètre, plutôt que de me fier à ce qui me semble être une faille dans leur algorithme d'authentification.

Merci

BTW, la même question a été posée sur le serveur de défaut, cependant, personne n'a été en mesure de répondre là-bas.

https://serverfault.com/questions/53971/db2-client-v9-5-on-win-2003-taking-long-time-to-establish-connection

Répondre

1

Notre DBA vient de trouver la bonne solution, et cela fonctionne sans ajouter cet utilisateur local.

Fondamentalement, il s'agit de quelque chose à faire lorsque vous cataloguez la connexion sur le serveur d'applications DB2, vous devez spécifier quelque chose comme «serveur d'authentification». Cela empêche le pilote DB2 d'être authentifié par rapport à Active Directory.

Je sais que la réponse est vague, mais c'est tout ce que je peux en tirer.

1

DB2 n'a pas de concept d'un code d'utilisateur « base de données uniquement » et utilisera toujours le système d'exploitation pour effectuer l'authentification. Si l'authentification de votre système d'exploitation se fait via Active Directory, DB2 s'authentifiera également.

Je pense que votre administrateur de base de données vous a donné la bonne solution en modifiant les paramètres/comptes dans le système d'exploitation pour faciliter l'authentification.

Je ne pense pas que ce soit une faille dans le pilote.