2016-08-23 14 views
0

JBoss EAP 6.4を使用してEJB earファイルをデプロイしています。すべてが正常に動作しますが、いくつかの時間のためのSwingアプリケーションのアイドル(1時間程度)、その後はスイングクライアントからのすべての機能にアクセスしようとした場合、クライアントは以下の例外を除いてクラッシュしてしまった:アイドル時間後にネーミングコンテキストが停止するJBoss EAP 6.4.0

それはとJNDIを解決することができません
javax.naming.NamingException: Unable to invoke lookup, status=WAITING 
    at org.jboss.naming.remote.protocol.v1.Protocol$1.execute(Protocol.java:98) 
    at org.jboss.naming.remote.protocol.v1.RemoteNamingStoreV1.lookup(RemoteNamingStoreV1.java:95) 
    at org.jboss.naming.remote.client.HaRemoteNamingStore$1.operation(HaRemoteNamingStore.java:275) 
    at org.jboss.naming.remote.client.HaRemoteNamingStore.namingOperation(HaRemoteNamingStore.java:132) 
    at org.jboss.naming.remote.client.HaRemoteNamingStore.lookup(HaRemoteNamingStore.java:271) 
    at org.jboss.naming.remote.client.RemoteContext.lookupInternal(RemoteContext.java:104) 
    at org.jboss.naming.remote.client.RemoteContext.lookup(RemoteContext.java:93) 
    at org.jboss.naming.remote.client.RemoteContext.lookup(RemoteContext.java:146) 
    at javax.naming.InitialContext.lookup(Unknown Source) 

クライアントサイドでキャッシュされたコンテキスト。プロパティの下に使用して、クライアントで作成し

コンテキスト:

table.put("remote.connection.one.connect.options.org.xnio.Options.SASL_POLICY_NOPLAINTEXT", "false"); 
        table.put("remote.connection.one.connect.options.org.xnio.Options.SASL_DISALLOWED_MECHANISMS", "JBOSS-LOCAL-USER"); 

table.put("remote.clusters", "ejb"); 
        table.put("remote.cluster.ejb.connect.options.org.xnio.Options.SASL_POLICY_NOPLAINTEXT", "false"); 
table.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming"); 
table.put("jboss.naming.client.ejb.context", true); 
        table.put("jboss.naming.client.connect.options.org.xnio.Options.SASL_POLICY_NOPLAINTEXT", "false"); 
    table.put(Context.SECURITY_PRINCIPAL, System.getProperty(Context.SECURITY_PRINCIPAL)); 
    table.put(Context.SECURITY_CREDENTIALS, System.getProperty(Context.SECURITY_CREDENTIALS)); 
        table.put("jboss.naming.client.remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED","true"); 
        table.put("jboss.naming.client.connect.options.org.xnio.Options.SSL_STARTTLS","true"); 
    table.put("jboss.naming.client.connect.timeout", "3000000"); 
    table.put(Context.PROVIDER_URL,PROVIDER_URL); 

    context = new javax.naming.InitialContext(table); 

アイドル時間後にコンテキストがルックアップすることができない理由を私は理解して助けてください?

+0

終了するたびにコンテキストを閉じる必要があるたびにコンテキストを作成してみてください。プロキシを再利用しないでください。 –

+0

「プロキシを再利用しないでください」の詳細を教えてください。パフォーマンスにも影響しませんか? – Gaurav

+0

見てくださいhttp://stackoverflow.com/questions/3092379/caching-remote-ejb-3-0-reference –

答えて

0

最後に解決策が見つかりました。 JBoss EAP 6.4では古いJNDIアプローチを使用して問題が発生し、HeartBeat_IntervalなどのJBoss機能をサポートしていません。

Jbossでルックアップする最良の方法は、EJBクライアント参照アクセスを使用することです。これにより、クラッシュなどのすべての問題が解決されます。 https://docs.jboss.org/author/display/AS71/Remote+EJB+invocations+via+JNDI+-+EJB+client+API+or+remote-naming+project

関連する問題