2009-11-06 4 views
1

J'ai un ancien serveur (Solaris 8) exécutant Informix Dynamic Server 2000 version 9.21.UC4, et je veux activer ODBC pour que je puisse accéder aux données d'ailleurs, mais je n'ai pas trouvé de documentation en ligne sur la façon de le faire sur le serveur. Je suis capable d'utiliser dbaccess sur le serveur pour obtenir les données juste très bien, mais quand je regarde la liste des services, je ne vois rien activé pour IDS ...Informix Dynamic Server 2000: Comment activer ODBC?

Pensées? Direction?

Merci!

pensées supplémentaires:

  • nom d'hôte de mon serveur est "r3tmmtx"
  • Le nom du serveur interne Informix semble être "cms_ol"

Mon fichier sqlhosts:

demo_on onipcshm  on_hostname  on_servername 
demo_se seipcpip  se_hostname  sqlexec 
cms_ol onipcshm  r3tmmtx   cms_ol 
oacms_ol  onipcstr  r3tmmtx oacms_ol 

Mes variables d'environnement avec "INFORMIX" à l'intérieur:

INFORMIXTERM=terminfo 
INFORMIXDIR=/opt/informix 
INFORMIXSERVER=cms_ol 
+0

Si vous n'avez pas besoin des entrées du serveur de démonstration, il vous suffit de les supprimer. Il semble que vous n'ayez pas d'accès distant au serveur - ce n'est pas nécessairement une mauvaise chose, à moins que vous ne vouliez y accéder depuis un PC (avec le PC exécutant le programme ODBC - par opposition à un PC exécutant un émulateur de terminal qui se connecte à la machine Solaris et exécute le programme ODBC là-bas, pour cela, vous allez bien). –

Répondre

0

IDS est automatiquement configuré pour accepter les connexions ODBC lorsqu'il accepte également les connexions DB-Access. Ce qui est peut-être plus délicat, c'est de dire à ODBC comment se connecter à IDS. Voici un fichier .odbc.ini que j'ai utilisé sur Solaris - Je crois que convenablement adapté, il devrait fonctionner pour vous.

; 
; odbc.ini 
; 
[ODBC Data Sources] 
odbc_demo = IDS 11.50.FC3 stores on black 

[odbc_demo] 
Driver   = /usr/informix/11.50.FC1/lib/cli/libifcli.so 
Description  = IBM Informix CLI 3.50 
Server   = black_19 
FetchBufferSize = 99 
UserName  = jleffler 
Password  = PassWord 
Database  = stores 
ServerOptions = 
ConnectOptions = 
Options   = 
ReadOnly  = no 
Trace   = yes 
TraceFile  = /tmp/odbc.trace 

Non - ce n'est pas mon mot de passe actuel. J'ai également un fichier sqlhosts configuré de manière appropriée:

black_19  ontlitcp  black 18190 
black_19_tcp ontlitcp  black 18191  s=4,pam_serv=login,pamauth=password 
black_19_enc ontlitcp  black 18192  csm=(black_19_enc) 
black_19_shm onipcshm  black black_19 
black_19_str onipcstr  black black_19 
black_19_pwd ontlitcp  black 18193  csm=(black_19_pwd) 

Le fichier OBDC utilise la première de ces entrées.

Si vous souhaitez vous connecter à l'IDS à partir d'un PC, vous devez configurer les connexions ODBC sur le PC, domaine dans lequel je ne suis pas expert. L'un des outils pertinents est SETNET32 (distribué avec CSDK sur Windows uniquement). Vous pouvez également avoir besoin (ou vouloir) de configurer des connexions sans DSN - Je n'ai pas pris la peine de le faire car j'utilise généralement ESQL/C plutôt que ODBC pour me connecter à IDS.

De plus, sachez qu'IDS 9.30 et 9.40 sont hors service maintenant - IDS 9.21 est hors service depuis longtemps.

+0

Il semble vraiment que mon serveur n'est pas configuré pour les connexions TCP (voir les informations supplémentaires que j'ai ajoutées ci-dessus). Quelles sont vos pensées? –

+0

C'est bon; set Server = cms_ol dans le fichier odbc.ini; ajustez les autres valeurs en conséquence (par exemple, supprimez les entrées Trace et TraceFile et ajustez l'entrée du pilote). Cela ne fonctionnera que pour ODBC sur la boîte Solaris - si vous vous connectez depuis des PC, vous aurez besoin d'un alias de serveur oltlitcp. Sur ma boîte, j'ai le nom de serveur black_19 et les alias de serveur black_19_tcp, black_19_shm et black_19_str; Je n'utilise pas actuellement les autres. Ajouter un alias de serveur signifie éditer le fichier sqlhosts, le fichier $ ONCONFIG, puis redémarrer IDS. –

0

Regardez votre /etc/services. Il devrait y avoir quelque chose comme:

turbo 1526/tcp      #Informix server 

Cela signifie que Informix écoute sur le port 1526. Ensuite, utilisez netstat -anp | grep [port] pour voir si elle est à l'écoute et visible pour les autres. S'il est visible, installez CSDK sur un autre ordinateur et configurez ODBC pour accéder à votre serveur.

Je n'utilise pas Solaris, donc je ne sais pas si netstat a l'option -p pour montrer quelle application utilise la connexion.

+0

Le système utilise des mécanismes IPC - flux et mémoire partagée - et le nom dans la troisième colonne du fichier sqlhosts n'est pas un nom de service dans ce contexte; il finit comme un nom de fichier (simplifiant énormément) qui doit être unique sur le système. Donc, bien que généralement valable, ceci n'est pas directement applicable à la situation de @ Denver. À moins qu'il ne tente d'exécuter des programmes ODBC sur un PC et d'accéder au serveur IDS sur la machine Solaris - quand le fait qu'il n'a pas de type de connexion réseau est très pertinent. –