Erreur RROR [08001] [IBM] SQL30081N lors de la connexion à AS400 (iSeries) à partir de NHibernate à l'aide de C#
Je n'ai absolument aucune expérience avec AS400 DB2 donc veuillez pardonner les erreurs flagrantes que j'apprends que je vais le long. J'ai 2 boîtes que je peut connecter à l'exécution v5r3 ou v4r3. et je suis en utilisant NHibernate 3. Cependant, lorsque j'essaie de le connecter, je reçois l'exception suivante :-
ERROR [08001] [IBM] SQL30081N A communication error has been detected.
Communication protocol being used: "TCP/IP". Communication API being used: "SOCKETS".
Location where the error was detected: "192.168.1.11". Communication function detecting the error: "connect". Protocol specific error code(s): "10061", "*", "*". SQLSTATE=08001
Ci-dessous est mon NHibernate fichier de configuration:-
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="dialect">NHibernate.Dialect.DB2400Dialect</property>
<property name="connection.driver_class">NHibernate.Driver.DB2Driver</property>
<property name="connection.connection_string">Server=192.168.1.11;Database=TESTDB;UID=XXX;PWD=XXX; </property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
<property name="command_timeout">15000</property>
<property name="current_session_context_class">thread_static</property>
</session-factory>
</hibernate-configuration>
Je ne sais pas si c'est parce que les versions de AS400 sont encore trop tôt? mon nhibernate configuration est incorrecte? ou ai-je quelque chose de mal configuré sur l'AS400.
Tout conseil serait grandement apprécié.
Merci beaucoup à l'avance
Êtes-vous en mesure de se connecter à cette instance DB2 avec d'autres outils? l'erreur, ressemble à quelque chose avec la base de données.
Je suis en mesure de se connecter et de requête à l'aide de la Client pilote ODBC Access via Excel. Cependant, je veux être capable de lire / écrire dans ma base de données, donc pas sûr que le pilote ODBC de me permettre de le faire. Pourrait-il être quelque chose à faire avec ma configuration de la base de données dans WRKRDBDIRE?
Quel conducteur êtes-vous à l'aide de NHibernate?
Je suis en utilisant le logiciel IBM DB2.Net fournisseur de Données qui se trouve sur ce chemin sur ma machine de développement (C:\Program Files\IBM\SQLLIB\bin\netf20\IBM.Data.DB2.dll)
J'ai mis à jour ma réponse avec plus d'informations à propos de DDM connexions.
Je suis en mesure de se connecter et de requête à l'aide de la Client pilote ODBC Access via Excel. Cependant, je veux être capable de lire / écrire dans ma base de données, donc pas sûr que le pilote ODBC de me permettre de le faire. Pourrait-il être quelque chose à faire avec ma configuration de la base de données dans WRKRDBDIRE?
Quel conducteur êtes-vous à l'aide de NHibernate?
Je suis en utilisant le logiciel IBM DB2.Net fournisseur de Données qui se trouve sur ce chemin sur ma machine de développement (C:\Program Files\IBM\SQLLIB\bin\netf20\IBM.Data.DB2.dll)
J'ai mis à jour ma réponse avec plus d'informations à propos de DDM connexions.
OriginalL'auteur lostinwpf | 2012-07-05
Vous devez vous connecter pour publier un commentaire.
Il existe deux types de connexions de base de données disponible sur IBM i - DRDA et DDM. DRDA est utilisé pour les connexions (DB2.Net.iSeries) et DDM est utilisé pour DB/2 LUW (DB2.Net, DB/2 Connecter les connexions.
DRDA
Vérifier la base de données de l'hôte du serveur en cours d'exécution:
Vérifier l'état de port:
NETSTAT OPTION(*CNN)
, appuyez sur F2 et vérifier les ports 449, 8470, 8471 et 8476 sont en état Écouter.Démarrer la base de données de l'hôte du serveur avec la commande:
DDM
Vérifier la ddm tcp serveur est en cours d'exécution:
Vérifier l'état de port:
NETSTAT *CNN, appuyez sur F2 et vérifier port 446 est dans l'état Écouter.
Commencer la ddm tcp serveur avec la commande:
Inclure la ddm numéro de port dans votre chaîne de connexion:
Ce Redbook IBM devrait fournir plus d'informations:
L'intégration de DB2 Universal Database for iSeries avec Microsoft ADO .NET
Ce message est juste un avertissement.
SELW
signifie que le job est en attente de connexions. Êtes-vous toujours obtenir le SQL30081N sur connecter?oui, je suis encore en train SQL30081N. Pourrait-il être lié au nom de base de données / configuration? Ce sont purement des suppositions de ma part.
Vous ne devriez jamais avoir besoin de changer le nom de la base ou de la configuration dans un environnement normal. Utilisée uniquement pour l'hébergement de plusieurs moteurs de base de données ou de clustering de serveurs.
Tous ces ports (449,8470,8471,8476) sont dans un état d'Écoute
OriginalL'auteur jamesallman
La véritable erreur sous-jacente est celle-ci:
TCP code d'erreur 10061: Aucune connexion n'a pu être établie car l'ordinateur cible l'a expressément refusé
Donc, apparemment, le point final n'est pas à l'écoute ou un pare-feu bloquant vous, ou vous avez une erreur de l'adresse. Si il y a quelque chose à configurer dans l'as/400, afin de permettre à cette adresse TCP pour écouter de la connexion, peut-être n'est pas correctement activé.
OriginalL'auteur Felice Pollano