Как исправить J2CA0045E: Соединение недоступно при вызове метода createOrWaitForConnection для ресурса jdbc / "my_datasource" - PullRequest
0 голосов
/ 23 мая 2018

Я установил одно приложение J2EE в Websphere ND 8.5.5.9 на сервер IBM AIX 7.2.При установке приложения я пропустил настройку очереди, указав в ней фиктивные значения.Затем возникла проблема с портом прослушивателя, поскольку очередь пыталась подключиться к фиктивной установке.Таким образом, пул соединений был полон, и система начала выдавать исключения.Итак, я переустановил приложение и оставил порт Listener в режиме STOP.Первые несколько часов приложение работало, как и ожидалось.Теперь он дает следующие исключения:

    [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).

Пожалуйста, предложите, что можно сделать, чтобы освободить пул соединений без каких-либо изменений кода.Можно ли справиться с этим на уровне операционной системы или на уровне веб-сферы?

1 Ответ

0 голосов
/ 23 мая 2018

Последнее из предупреждений с 18-секундным ожиданием относится к попытке подключения, выполненной планировщиком WAS.Вы должны посмотреть в своей конфигурации, чтобы увидеть, настроен ли планировщик для использования того же источника данных, jdbc / "" (что является необычным именем - правильно ли настроен этот источник данных?), Как и предыдущие ошибки.Есть несколько возможностей для причины этих ошибок / предупреждений.У вас может быть пул соединений, размер которого недостаточно велик для того, чтобы справиться с нагрузкой, необходимой для вашего приложения, или у вас может быть код, который слишком долго удерживает соединения, из-за чего у других пользователей источника данных не хватает ресурсов.

...