akardapolov / ASH-Viewer

ASH Viewer provides a graphical view of active session history data within the Oracle and PostgreSQL DB
GNU General Public License v3.0
167 stars 72 forks source link

Ashr 4 версии перестает собирать информацию от Oracle через некоторое время. #58

Open apext1431 opened 2 years ago

apext1431 commented 2 years ago

Ashr 4 версии перестает собирать информацию от БД через некоторое время.
В логе присутствуют следующие ошибки.

9.12.21 22:34:04.996 [pool-3-thread-1] INFO  GetFromRemoteAndStore - Start loading
09.12.21 22:34:04.996 [pool-3-thread-1] INFO  GetFromRemoteAndStore - Start loading olap
09.12.21 22:34:05.000 [pool-3-thread-1] ERROR GetFromRemoteAndStore - SQL error while executing the following statement:SELECT sysdate FROM dual
09.12.21 22:34:05.001 [pool-3-thread-1] ERROR GetFromRemoteAndStore - [oracle.jdbc.driver.T4CMAREngineStream.unmarshalUB1(T4CMAREngineStream.java:453), oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:390), oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249), oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:566), oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:215), oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:58), oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:776), oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:897), oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1034), oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3820), oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3867), oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1502), org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:82), org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:82), core.processing.GetFromRemoteAndStore.getOneRowOutputDateFromDB(GetFromRemoteAndStore.java:599), core.processing.GetFromRemoteAndStore.loadDataToOlap(GetFromRemoteAndStore.java:323), core.processing.GetFromRemoteAndStore.loadDataFromRemoteToLocalStore(GetFromRemoteAndStore.java:153), core.thread.SqlExecutorThread.lambda$taskThatFinishesEarlyOnInterruption$21(SqlExecutorThread.java:61), java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source), java.util.concurrent.FutureTask.run(Unknown Source), java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source), java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source), java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source), java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source), java.lang.Thread.run(Unknown Source)]
09.12.21 22:34:05.021 [pool-3-thread-1] ERROR GetFromRemoteAndStore - No more data to read from socket
09.12.21 22:34:05.022 [pool-3-thread-1] INFO  GetFromRemoteAndStore - Start loading stacked chart
09.12.21 22:34:05.022 [pool-3-thread-1] INFO  GetFromRemoteAndStore - Stop loading olap
09.12.21 22:34:10.429 [pool-3-thread-1] INFO  GetFromRemoteAndStore - Start loading
09.12.21 22:34:10.429 [pool-3-thread-1] INFO  GetFromRemoteAndStore - Start loading olap
09.12.21 22:34:10.429 [pool-3-thread-1] ERROR GetFromRemoteAndStore - SQL error while executing the following statement:SELECT sysdate FROM dual
09.12.21 22:34:10.429 [pool-3-thread-1] ERROR GetFromRemoteAndStore - [oracle.jdbc.driver.T4CMAREngineStream.unmarshalUB1(T4CMAREngineStream.java:453), oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:390), oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249), oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:566), oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:215), oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:58), oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:776), oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:897), oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1034), oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3820), oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3867), oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1502), org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:82), org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:82), core.processing.GetFromRemoteAndStore.getOneRowOutputDateFromDB(GetFromRemoteAndStore.java:599), core.processing.GetFromRemoteAndStore.loadDataToOlap(GetFromRemoteAndStore.java:323), core.processing.GetFromRemoteAndStore.loadDataFromRemoteToLocalStore(GetFromRemoteAndStore.java:153), core.thread.SqlExecutorThread.lambda$taskThatFinishesEarlyOnInterruption$21(SqlExecutorThread.java:61), java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source), java.util.concurrent.FutureTask.run(Unknown Source), java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source), java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source), java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source), java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source), java.lang.Thread.run(Unknown Source)]
09.12.21 22:34:10.448 [pool-3-thread-1] ERROR GetFromRemoteAndStore - No more data to read from socket
09.12.21 22:34:10.448 [pool-3-thread-1] INFO  GetFromRemoteAndStore - Start loading stacked chart
09.12.21 22:34:10.448 [pool-3-thread-1] INFO  GetFromRemoteAndStore - Stop loading olap
09.12.21 22:34:15.891 [pool-3-thread-1] INFO  GetFromRemoteAndStore - Start loading

Используется: ashr - 4.3.3. Oracle - 12c jdbc - 7 версии. Java - jdk1.8.0_144

На ashr 3 версии при подключении к этой-же бд с одинаковыми параметрами и jdbc драйвером такой проблемы не наблюдается.

akardapolov commented 2 years ago

Привет!

image

https://stackoverflow.com/questions/7839907/no-more-data-to-read-from-socket-error

Thanks, Alex.

VladimirSavin commented 2 years ago

@akardapolov схожая проблема, но причины полагаю другие. SELECT * FROM v$active_session_history WHERE SAMPLE_TIME > ? ORDER BY SAMPLE_TIME ASC 23.12.21 14:02:14.515 [pool-3-thread-1] INFO GetFromRemoteAndStore - Start loading stacked chart 23.12.21 14:02:14.577 [pool-3-thread-1] INFO GetFromRemoteAndStore - Stop loading olap 23.12.21 14:02:19.895 [pool-3-thread-1] INFO GetFromRemoteAndStore - Start loading 23.12.21 14:02:19.895 [pool-3-thread-1] INFO GetFromRemoteAndStore - Start loading olap SELECT * FROM v$active_session_history WHERE SAMPLE_TIME > ? ORDER BY SAMPLE_TIME ASC Exception in thread "AWT-EventQueue-1" java.lang.IllegalStateException: Database still has 1 open cursors while trying to close. at com.sleepycat.je.Database.closeInternal(Database.java:513) at com.sleepycat.je.Database.close(Database.java:352) at com.sleepycat.je.SecondaryDatabase.close(SecondaryDatabase.java:334) at com.sleepycat.persist.impl.Store.closeDb(Store.java:1540) at com.sleepycat.persist.impl.Store.close(Store.java:1133) at com.sleepycat.persist.EntityStore.close(EntityStore.java:660) at store.StoreManager.closeDb(StoreManager.java:75) at gui.MainWindow$1.windowClosing(MainWindow.java:85) at java.awt.Window.processWindowEvent(Unknown Source) at javax.swing.JFrame.processWindowEvent(Unknown Source) at java.awt.Window.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$500(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) 23.12.21 14:02:23.148 [pool-3-thread-1] INFO GetFromRemoteAndStore - Start loading stacked chart 23.12.21 14:02:23.148 [pool-3-thread-1] INFO GetFromRemoteAndStore - Stop loading olap Exception in thread "AWT-EventQueue-1" java.lang.IllegalStateException: Can't call Database.sync: Database was closed. at com.sleepycat.je.Database.checkOpen(Database.java:1863) at com.sleepycat.je.Database.sync(Database.java:544) at com.sleepycat.persist.impl.Store.sync(Store.java:969) at com.sleepycat.persist.EntityStore.sync(EntityStore.java:618) at store.StoreManager.syncBdb(StoreManager.java:69) at gui.MainWindow$1.windowClosing(MainWindow.java:84) at java.awt.Window.processWindowEvent(Unknown Source) at javax.swing.JFrame.processWindowEvent(Unknown Source) at java.awt.Window.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$500(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)