Je voulais établir une connexion ODBC entre un PC Windows et un serveur AS / 400 DB2 et j'ai écrit un programme VBA. Mais j'ai eu l'erreur suivante.
Command CHGDDMTCPA in library *LIBL not found
Ensuite, j'ai vérifié l'état du serveur avec CWSPING
et j'ai obtenu le résultat ci-dessous:
*DDM not valid for parameter SERVER
3 Réponses :
Essayez STRHOSTSVR * DATABASE
.
STRHOSTSVR
est utilisé pour démarrer les serveurs associés à IBM i Access et i Access Client Solutions.
STRTCPSVR
est utilisé, en général, pour démarrer des serveurs associés à TCP / IP comme FTP, Telnet, etc. Sauf le serveur HTTP qui est lancé via le site d'administration Web à http: //
J'ai essayé STROSSER * DATABASE mais rien n'a changé. Le serveur ne semble pas avoir de service DDM / DRDA. J'ai donc utilisé une connexion JDBC qui n'utilise pas DRDA.
En plus de la réponse de @jmarkmurphy:
netstat * cnn
pour les ports ouverts. strfdu
, option 5 avec le fichier qusrsys / qatocstart. À partir de là, vous pouvez facilement afficher et modifier ce qui doit être démarré ou non. Enfin, je me suis connecté en utilisant JDBC. Le résumé de ce que j'ai trouvé est le suivant:
La première erreur que j'ai rencontrée lors de l'utilisation d'ODBC est "Le port distant n'a pas pu être résolu". Ce qui s'est passé derrière cela semble être le suivant:
Ensuite, j'ai essayé OLEDB cette fois. Il a vérifié correctement l'utilisateur / mot de passe mais a émis une erreur inconnue. Lorsque je mets un mot de passe incorrect, cela indique que "le mot de passe est incorrect", ce qui signifie que OLEDB s'est connecté avec succès au serveur mais a obtenu une erreur après la connexion.
Le dernier, j'ai utilisé JDBC et je me suis connecté avec succès! Généralement, l'URL de connexion est comme "jdbc: as400: //" mais elle a montré une erreur. En utilisant la trace de JDBC, il semble y avoir un problème lors de la connexion au serveur. J'ai donc changé l'url en "jdbc: as400: //: 8471", puis je me suis finalement connecté. En regardant dans trace, il accède directement au port 8741 et envoie un utilisateur / mot de passe et se connecte. Je ne connais pas le détail, mais ça a marché!
Merci pour votre aide!