Pas de problème (pb), que du PowerBuilder (PB) ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 21-08-2008 07:31:50

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

[ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client

A partir de la version 10 d'Oracle, plus la peine d'installer un client volumineux et de paramétrer un TNSNAMES.ORA, seules qq DLL suffisent...

(pas testé avec la version 11, fonctionne probablement, si quelqu'un a cet environnement et peut faire le test pour confirmer... )


1) Télécharger le zip du client sur le site d'Oracle

http://www.oracle.com/technology/softwa … nsoft.html

(A) Pour les messages en anglais

Instant Client Package - Basic Lite: Smaller version of the Basic, with only English error messages and Unicode, ASCII, and Western European character set support (10.2 only)
instantclient-basiclite-win32-10.2.0.4.zip

(B) Pour les messages internationaux

Instant Client Package - Basic: All files required to run OCI, OCCI, and JDBC-OCI applications
instantclient-basic-win32-10.2.0.4.zip

2) Définir la variable d'environnement NLS_LANG

(A) Pour les messages en anglais

NLS_LANG= AMERICAN_AMERICA.WE8MSWIN1252

(B) Pour les messages en français

NLS_LANG= FRENCH_FRANCE.WE8MSWIN1252

3) Paramétrer SQLCA

ServerName = syntaxe d'un descripteur de service d'un TNSNAMES.ORA

Code: pb

SQLCA.LogId      = 'mon_utilisateur'
SQLCA.LogPass    = 'mon_mot_de_passe'
SQLCA.ServerName = '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = mon_serveur )(PORT = 1521))' &
                 + '(CONNECT_DATA = (SID = mon_sid )))'


4) Déployer les librairies

Comme habituellement avec Oracle, le driver PowerBuilder dédié, p.ex pour PB11 et Oracle 10 :

pbo10110.dll

et les drivers Oracle présents dans les ZIP :

(A) Pour les messages en anglais

oci.dll
ociw32.dll
oraocci10.dll
oraociicus10.dll

(B) Pour les messages internationaux

oci.dll
ociw32.dll
oraocci10.dll
oraociei10.dll


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#2 21-08-2008 07:51:26

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#3 02-06-2010 07:41:01

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client

génial


never let people work on more than one thing at once.

Hors ligne

 

#4 18-04-2013 07:53:54

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

Re: [ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client

Bonjour,

Lorsque je souhaite sous PB9 définir une connexion à une DB Oracle 10g, il me laisse paramétrer dans DATABASE PROFILES / O90 Oracle 9.0.1 la chaîne de connexion et au moment où je souhaite me connecter, me signale "ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA."

J'ai au préalable copié les DLL :
- oci.dll
- ociw32.dll
- oraocci11.dll
- oraociei11.dll
dans le dossier idoine.

SQLCA.DBMS = "O90 Oracle9i (9.0.1)"
SQLCA.LogPass = monPwd
SQLCA.ServerName = "monSERVEUR"
SQLCA.LogId = "monUser"
SQLCA.AutoCommit = False
SQLCA.DBParm = "" <- Je subodore qu'il doit être spécifié ici la chaine de connexion du type "user id=scott;password=tiger;data source=" +
     "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)" +
     "(HOST=sales-server)(PORT=1521))(CONNECT_DATA="+
     "(SERVICE_NAME=sales.us.acme.com)))" ?

Hors ligne

 

#5 18-04-2013 08:30:33

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client

Il faut préciser le nom du service Oracle dans SID=... (normalement tu le retrouves dans ton tnsnames.ora)


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#6 18-04-2013 10:00:18

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

Re: [ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client

Merci ! Je viens de comprendre que le SID c'est la base de données en fait...
Maintenant j'ai l'erreur suivante :
"le processus d'écoute ne connait pas actuellement le service demandé dans le descripteur de connexion"
> Une base Oracle 10g peut-elle être "contactée" par le pilote Oracle 9i ?
(Nous attaquons des bases SQL 2000 avec un DBMS="MSS (Msoft) SQL Server 6.0"

Code: pb

atr_sql.DBMS = "O90 Oracle 9i"
atr_sql.LogId = ls_user
atr_sql.LogPass = ls_pwd
atr_sql.ServerName = ls_srv
atr_sql.DBParm = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = " + ls_srv + ")(PORT = 1521))" &
        + "(CONNECT_DATA = (SERVICE_NAME = " + ls_base + "))"

Hors ligne

 

#7 18-04-2013 10:47:34

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client

t'as mis SERVICE_NAME ou SID ?

tu peux coller le contenu de ton tnsnames.ora ?


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#8 18-04-2013 11:50:29

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

Re: [ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client

Je dois utiliser le premier élément :

ADID =
    (DESCRIPTION =
        (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = GESTEST)(PORT = 1521))
    )
    (CONNECT_DATA =
        (SERVICE_NAME = ADID)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

Hors ligne

 

#9 18-04-2013 11:51:44

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

Re: [ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client

N'y aurait-il pas le fichier listener.ora à modifier aussi ? le descripteur "ADID" n'apparaît pas.
-- EDIT
En passant par l'assistant de configuration j'ai rajouté le descripteur ADID, sans plus de résultat.

Dernière modification par sbouvetJD (18-04-2013 12:29:52)

Hors ligne

 

#10 18-04-2013 12:44:17

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client

ton tnsnames.ora doit être correct

il manque une parenthèse fermante à la fin du dbpam, mais je ne pense pas que ça soit ça


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#11 18-04-2013 12:50:28

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

Re: [ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client

erasorz a écrit:

ton tnsnames.ora doit être correct

il manque une parenthèse fermante à la fin du dbpam, mais je ne pense pas que ça soit ça

Vu, j'avais corrigé

Après reconfiguration du listener.ora par l'outil adéquat, j'ai un nouveau message : "pas de processus d'écoute"
Ce qui me parait curieux (je ne saisis pas très bien comment cela fonctionne) c'est que le listener indique en hôte mon poste alors que le serveur oracle est sur un ordinateur distant ?


Voici mon listener.ora :
ADID =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = monposte.mondomaine.dom)(PORT = 1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = monposte.mondomaine.dom)(PORT = 1521))
    )
  )

Hors ligne

 

#12 18-04-2013 13:53:44

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

Re: [ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client

J'ai le même problème en PB12 classic, je pense donc qu'il s'agit d'un pb au niveau du fichier listener. Je creuse...

Hors ligne

 

#13 18-04-2013 14:22:51

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

Re: [ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client

En exécutant la commandelsnrctl services ADID j'ai les erreurs suivantes :
"Connecting to <la chaine définie dans le listener>"
"TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
32-bits Windows Error: 61: Unknown error"

Hors ligne

 

#14 18-04-2013 14:28:58

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client


Code:

lsnrctl start

?


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#15 18-04-2013 14:36:19

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

Re: [ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client

Ah, d'accord :P après cela, effectivement, la commande lsnrctl services ADID me retourne les informations suivantes :
"Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0
LOCAL SERVER
The command completed successfully"

Mais cela ne me parle pas de mon serveur distant ?

Hors ligne

 

#16 19-04-2013 08:31:14

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

Re: [ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client

Apparemment je ne devais pas disposer de listener sur mon poste client. Wait & See, je suis en relation avec notre prestataire responsable de la migration SQL Server vers Oracle de leur produit.

Hors ligne

 

#17 19-04-2013 08:58:47

sbouvetJD  
Chasseur d'y voir ?
Lieu: LYON
Date d'inscription: 29-03-2007
Messages: 185
Pépites: 147,483,921
Banque: 13,317,684,827,902,405
Site web

Re: [ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client

Problème résolu ! Dans ma chaine de connexion, ServerName ne doit pas contenir le nom du serveur, mais le nom de l'alias (à savoir, ADID)

Hors ligne

 

#18 02-07-2013 08:56:29

PowerDestroyer  
Membre
Date d'inscription: 10-02-2012
Messages: 9
Pépites: 34
Banque: 0

Re: [ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client

Bonjour à vous,

A toute fin utile, je suis sous Windows 7 64 bits, j'ai essayé avec l'instant client win64, ça n'a pas marché.
Il faut utiliser le client win32.

J'imagine que c'est dû au fait que Pb tourne en 32 bits.

(Je suis en Pb12.5.1.4015)

Hors ligne

 

#19 02-07-2013 10:15:02

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client

PowerDestroyer a écrit:

Bonjour à vous,

A toute fin utile, je suis sous Windows 7 64 bits, j'ai essayé avec l'instant client win64, ça n'a pas marché.
Il faut utiliser le client win32.

J'imagine que c'est dû au fait que Pb tourne en 32 bits.

(Je suis en Pb12.5.1.4015)

de ton retour (je n'ai pas encore testé en 64bits)


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#20 10-09-2013 11:48:10

Praet  
Membre Geek
Date d'inscription: 23-11-2007
Messages: 25
Pépites: 64
Banque: 0

Re: [ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client

Bonjour,

En effet l'utilisation d'un version 64bit de windows semble poser un problème.
A priori le client de connexion ne semble pas supporter les noms avec espaces ou caractères spéciaux.
Etant donné que par défaut windows installent les programmes 32 bits dans un répertoire x:\Program Files (x86) le souci vient de là.
Donc la "solution" pour notre cas sera d'installer pb dans un répertoire du style x:\ProgramFiles\PB100

Si vous avez une autre solution je suis preneur

Hors ligne

 

#21 10-09-2013 12:08:58

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [ASTUCE] Connexion PB à Oracle 10 (11) avec l'instant client

Praet a écrit:

En effet l'utilisation d'un version 64bit de windows semble poser un problème.
A priori le client de connexion ne semble pas supporter les noms avec espaces ou caractères spéciaux.
Etant donné que par défaut windows installent les programmes 32 bits dans un répertoire x:\Program Files (x86) le souci vient de là.

Effectivement, j'avais déjà constaté ce problème d'espace dans les chemins (que j'ai peut-être posté sur une autre discussion...)
C'est le cas pour toutes les applications qui utilisent le client Oracle, comme l'IDE PowerBuilder, les exécutables PB, les outils SQL, etc.


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22