Wie zu beheben J2CA0045E: Verbindung nicht verfügbar beim aufrufen der Methode createOrWaitForConnection für die Ressource jdbc/“my_datasource“

Installiert ich habe eine J2EE-Anwendung in Websphere ND 8.5.5.9 auf einem IBM AIX-7.2-server.
Während der Installation der Anwendung, die ich ausgelassen habe-Warteschlange setup, indem Sie die dummy-Werte. Dann, Listener-port-Problem kam, als die Warteschlange war zu versuchen, eine Verbindung zu dummy-setup. Diese Art der Verbindungs-pool voll war und das system begann mit Ausnahmen. So, ich re-Installation der Anwendung und behalten Sie den Listener-port im STOP-Modus. Die ersten paar Stunden Anwendung lief wie erwartet. Nun, es ist ein geben nachstehende Ausnahmen:

    [5/23/18 17:29:53:609 CEST] 000000a9 FreePool      E   J2CA0045E: Connection not available while invoking method createOrWaitForConnection for resource jdbc/"". 
[5/23/18 17:31:12:899 CEST] 00000055 FreePool      E   J2CA0045E: Connection not available while invoking method createOrWaitForConnection for resource jdbc/"". 
[5/23/18 17:31:12:900 CEST] 00000055 AlarmThreadMo W   UTLS0009W: Alarm Thread "Non-deferrable Alarm : 0" (00000055) previously reported to be delayed has now completed.  It was active for approximately 180004 milliseconds. 
[5/23/18 17:32:11:191 CEST] 00000029 AlarmThreadMo W   UTLS0008W: The return of alarm thread "Non-deferrable Alarm : 2" (00000057) to the alarm thread pool has been delayed for 18271 milliseconds. This may be preventing normal alarm function within the application server. The alarm listener stack trace is as follows:
            at java.lang.Object.wait(Native Method)
            at java.lang.Object.wait(Object.java:201)
            at com.ibm.ejs.j2c.FreePool.queueRequest(FreePool.java:438)
            at com.ibm.ejs.j2c.FreePool.createOrWaitForConnection(FreePool.java:1344)
            at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:3898)
            at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:3118)
            at com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper(ConnectionManager.java:1548)
            at com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:1031)
            at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:646)
            at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:924)
            at com.ibm.ws.extensionhelper.db.impl.DatabaseHelperImpl$DSWrapper.getConnection(DatabaseHelperImpl.java:1595)
            at com.ibm.ws.extensionhelper.db.impl.DatabaseHelperImpl.getConnection(DatabaseHelperImpl.java:750)
            at com.ibm.ws.leasemanager.impl.LeaseManagerDBHelper.getConnection(LeaseManagerDBHelper.java:213)
            at com.ibm.ws.leasemanager.impl.LeaseStoreImpl.renew(LeaseStoreImpl.java:452)
            at com.ibm.ws.leasemanager.impl.LeaseImpl.renew(LeaseImpl.java:141)
            at com.ibm.ws.scheduler.LeaseAlarm.alarm(LeaseAlarm.java:173)
            at com.ibm.ejs.util.am._Alarm.runImpl(_Alarm.java:151)
            at com.ibm.ejs.util.am._Alarm.run(_Alarm.java:136)
            at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1892).

Bitte vorschlagen, was getan werden kann, um die Verbindungs-pool-ohne irgendwelche änderungen am code. Ist es möglich, Griff es auf OS-level-oder Websphere-Ebene?

InformationsquelleAutor Bhakt | 2018-05-23



One Reply
  1. 0

    Die letzten Warnungen mit 18 Sekunden warten ist für eine Verbindung, die hergestellt wird, indem die WAR-scheduler. Sie sollten sich in Ihrer Konfiguration, um zu sehen, wenn der scheduler konfiguriert ist die Verwendung der gleichen Datenquelle jdbc/““ (das ist ein ungewöhnlicher name – ist diese Datenquelle richtig konfiguriert?) wie die vorherigen Fehler. Es gibt ein paar Möglichkeiten für die Ursache hinter den Thesen von Fehlern/Warnungen. Sie hätte eine Verbindung-pool ist ausreichend dimensioniert, um die Last zu bewältigen, die Ihre Anwendung benötigt, oder könnten Sie code, die auf verbindungen zu lange, hungern sich die anderen Benutzer der Datenquelle.

    • datasource name ist richtig konfiguriert und die Verbindung pool-Größe gehalten wird als 65. Gleiche Konfiguration arbeitet sehr fein in der Produktionsumgebung. Gibt es noch irgendetwas das ich versuchen kann mit Scheduler? Bitte achten Sie darauf, dass ich gehalten haben, die alle richtig konfiguriert, gleich wurde überprüft mehrfach.
    • Anstatt sich auf den scheduler, die nicht zugeordnet werden können, die Verbindung, die es braucht, würde ich empfehlen, die Konzentration auf das, was ist mit up/halten Sie die verbindungen und beenden zur Verfügung steht. Der folgende link ist eine gute Anleitung für die Aktivierung und debugging ConnLeakLogic=alle trace, www-01.ibm.com/support/docview.wss?uid=swg21385033 Dies sollte helfen, zu Debuggen, was hält die verbindungen offen und aushungern der Planer und andere Ressourcen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.