Oracle: Collegamento problema intermittente con JDBC

voti
0

sviluppatore SQL offre diversi metodi per connettersi a un'istanza di database.

Se scelgo il Basicmetodo, che prevede hostname, porte SIDnella casella di input a parte, di connessione al database viene eseguito senza alcun problema.

Tuttavia, se scelgo Advancedmetodo, che prevede il seguente URL JDBC in un tutto:

jdbc:oracle:thin:@hostname:port:SID

e premere Testil pulsante, a volte gli spettacoli di stato Success, ma a volte apparire un messaggio di errore simile a questo:

Status : Failure -Test failed: Listener refused the connection with the following error:
ORA-12519, TNS:no appropriate service handler found

Allora, perché e come ci sia una tale differenza con entrambi i metodi? Si tratta di un bug da sviluppatore SQL?

UPDATE 1

Ho trovato il problema succede esattamente quando si esegue un'applicazione Java EE con collegamento JNDI per la stessa istanza del database, in modo da istanza di database ascoltatore non può tollerare più di un accesso se uno di loro è JNDI? Penso solo fare che fino ...

È pubblicato 04/02/2013 alle 16:17
fonte dall'utente
In altre lingue...                            


1 risposte

voti
0

Trovare il problema, in breve il problema può essere risolto uno dei due scelte:

  1. Aumentare la dimensione di connessioni consentite da parte di Oracle
  2. Ridurre le dimensioni delle connessioni consentita dal JNDI

La prima soluzione è gestito da DBA, ma la seconda può essere implementato dallo sviluppatore, in contesti JNDI della mia applicazione (Testiamo JNDI su Tomcat), le connessioni massime consentite per la piscina è troppi per il servizio corrente Oracle in grado di gestire:

<Resource name="jdbc/schema_A" auth="Container" type="javax.sql.DataSource"
    driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@hostname:1521:orcl"
    username="app_A" password="app_A" maxActive="20" maxIdle="10" maxWait="-1" />

maxActive="20" maxIdle="10" è troppo da qui il messaggio di errore, così ho modificarlo a

<Resource name="jdbc/schema_A" auth="Container" type="javax.sql.DataSource"
    driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@hostname:1521:orcl"
    username="app_A" password="app_A" maxActive="1" maxIdle="1" maxWait="-1" />

Ora tutto funziona senza problemi ... applausi ..

Risposto il 04/02/2013 a 17:40
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more