0

最近発生した問題により、永続的なプログラム タイマーを使用するアプリケーションの既存のロジックを非永続的なタイマーに置き換えようとしています。タイマーの永続的な情報を書き込むために WAS が使用するファイル システムがいっぱいになり、Derby データベースが読み取り専用モードで再起動されたため、アプリケーションがタイマー ポストをトリガーできなくなり、サーバーを再起動して同じ問題を修正する必要がありました。

これは、プログラム タイマーをトリガーするために使用される現在のコードです。

Timer timer = timerService.createTimer(100,eventContextWrapper);

http://docs.oracle.com/javaee/6/tutorial/doc/bnboy.htmlに引用されている例に従って、コードを次のように変更しました

TimerConfig tC = new TimerConfig(eventContextWrapper, false);
Timer timer = timerService.createSingleActionTimer(100,  tC);

しかし、以下の例外に直面しています

[5/31/17 22:18:23:348 GMT+08:00] 000000bf SystemErr     R org.omg.CORBA.MARSHAL: Unable to read value from underlying bridge : null  vmcid: IBM  minor code: 896  completed: No
[5/31/17 22:18:23:348 GMT+08:00] 000000bf SystemErr     R       at com.ibm.rmi.iiop.CDRReader.read_value(CDRReader.java:771)
[5/31/17 22:18:23:348 GMT+08:00] 000000bf SystemErr     R       at com.ibm.rmi.iiop.EncoderInputStream.read_value(EncoderInputStream.java:840)
[5/31/17 22:18:23:348 GMT+08:00] 000000bf SystemErr     R       at com.ibm.ws.ejbcontainer.util.ORBObjectCopierImpl.copy(ORBObjectCopierImpl.java:52)
[5/31/17 22:18:23:348 GMT+08:00] 000000bf SystemErr     R       at com.ibm.ws.ejbcontainer.util.ObjectUtil.copy(ObjectUtil.java:159)
[5/31/17 22:18:23:349 GMT+08:00] 000000bf SystemErr     R       at com.ibm.ejs.container.TimerNpImpl.<init>(TimerNpImpl.java:240)
[5/31/17 22:18:23:349 GMT+08:00] 000000bf SystemErr     R       at com.ibm.ejs.container.TimerNpImpl.<init>(TimerNpImpl.java:276)
[5/31/17 22:18:23:349 GMT+08:00] 000000bf SystemErr     R       at com.ibm.ws.runtime.component.WASEJBRuntimeImpl.createTimer(WASEJBRuntimeImpl.java:1371)
[5/31/17 22:18:23:349 GMT+08:00] 000000bf SystemErr     R       at com.ibm.ejs.container.BeanO.createSingleActionTimer(BeanO.java:2551)
com.test.customer.event.EventTimerBean.triggerTimer(EventTimerBean.java:62)

62 行目で、createSingleActionTimer が呼び出されます。

いくつかの分析を行いましたが、同じ問題を修正できませんでした。どんなリードも役に立ちます..

4

1 に答える 1