2011-11-02 26 views
1

我們最近從Glassfish-2.x遷移到非Glassfish-2.x羣集環境。部分舉措包括在IIOP上使用RMI而不是連接到靜態服務器。除非我們的客戶端應用程序閒置一個多小時,服務器的連接被服務器終止,從而阻止我們執行任何查找,否則一切都會很好。我們想知道如何保持連接數小時。操作系統設置爲保持連接2小時(/ proc/sys/net/ipv4/tcp_keepalive_time)。是否有通過IIOP連接Glassfish中設置的超時限制,以及如何改變它?轉移到Glassfish-2.x羣集會導致連接在1小時後超時

javax.naming.CommunicationException: Can't find SerialContextProvider [Root exception is org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 completed: Maybe] 
    at com.sun.enterprise.naming.SerialContext.getProvider(SerialContext.java:165) 
    at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:398) 
    at javax.naming.InitialContext.lookup(InitialContext.java:392) 
    at com... 
    at com... 
    at com... 
    at com... 
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) 
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) 
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) 
    at javax.swing.AbstractButton.doClick(AbstractButton.java:357) 
    at javax.swing.plaf.basic.BasicRootPaneUI$Actions.actionPerformed(BasicRootPaneUI.java:191) 
    at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1639) 
    at javax.swing.JComponent.processKeyBinding(JComponent.java:2851) 
    at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:267) 
    at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:216) 
    at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2928) 
    at javax.swing.JComponent.processKeyBindings(JComponent.java:2920) 
    at javax.swing.JComponent.processKeyEvent(JComponent.java:2814) 
    at java.awt.Component.processEvent(Component.java:6065) 
    at java.awt.Container.processEvent(Container.java:2041) 
    at java.awt.Component.dispatchEventImpl(Component.java:4651) 
    at java.awt.Container.dispatchEventImpl(Container.java:2099) 
    at java.awt.Component.dispatchEvent(Component.java:4481) 
    at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1850) 
    at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:712) 
    at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:990) 
    at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:855) 
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:676) 
    at java.awt.Component.dispatchEventImpl(Component.java:4523) 
    at java.awt.Container.dispatchEventImpl(Container.java:2099) 
    at java.awt.Window.dispatchEventImpl(Window.java:2478) 
    at java.awt.Component.dispatchEvent(Component.java:4481) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643) 
    at java.awt.EventQueue.access$000(EventQueue.java:84) 
    at java.awt.EventQueue$1.run(EventQueue.java:602) 
    at java.awt.EventQueue$1.run(EventQueue.java:600) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) 
    at java.awt.EventQueue$2.run(EventQueue.java:616) 
    at java.awt.EventQueue$2.run(EventQueue.java:614) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:613) 
    at com... 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) 
Caused by: org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 completed: Maybe 
    at com.sun.corba.ee.impl.logging.ORBUtilSystemException.connectionAbort(ORBUtilSystemException.java:2862) 
    at com.sun.corba.ee.impl.logging.ORBUtilSystemException.connectionAbort(ORBUtilSystemException.java:2880) 
    at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.doOptimizedReadStrategy(SocketOrChannelConnectionImpl.java:1788) 
    at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.doWork(SocketOrChannelConnectionImpl.java:1263) 
    at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555) 
Caused by: org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 211 completed: No 
    at com.sun.corba.ee.impl.logging.ORBUtilSystemException.ioexceptionWhenReadingConnection(ORBUtilSystemException.java:2946) 
    at com.sun.corba.ee.impl.logging.ORBUtilSystemException.ioexceptionWhenReadingConnection(ORBUtilSystemException.java:2965) 
    at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.nonBlockingRead(SocketOrChannelConnectionImpl.java:2000) 
    at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.doOptimizedReadStrategy(SocketOrChannelConnectionImpl.java:1713) 
    ... 2 more 
Caused by: java.io.IOException: Connection reset by peer 
    at sun.nio.ch.FileDispatcher.read0(Native Method) 
    at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21) 
    at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:202) 
    at sun.nio.ch.IOUtil.read(IOUtil.java:175) 
    at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:243) 
    at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.nonBlockingRead(SocketOrChannelConnectionImpl.java:1987) 
    ... 3 more 
+0

有沒有人知道爲什麼RMI over IIOP連接會在一小時後超時,以及如何更改該超時? – Kecher

回答

0

在您的服務器和客戶端之間是否存在防火牆?我們有這個相同的錯誤,事實證明防火牆正在丟棄連接。

+0

對不起,延遲迴復。我們實際上轉向了Glassfish 3.1,並從我能夠告訴問題已經消失。感謝您的迴應。 – Kecher

+0

我在Glassfish 3.1.2.2上遇到同樣的事情。兩臺通信的Glassfish服務器之間有防火牆。格雷姆,你是怎麼修好的? – DavidS