ошибка поиска контекста в веблогике: java.rmi.UnmarshalException: ошибка, не разбирающая аргументы - PullRequest
3 голосов
/ 01 сентября 2009

Мы столкнулись с проблемой в нашей производственной среде. Мы искали в сети максимумы и минимумы и не смогли найти ни одного ответа. Эта ошибка (трассировка стека ниже) возникает, когда выполняется поиск ejb с управляемого сервера 1 на сервер менеджера 2. Виртуальный ip используется для поиска. Это происходит периодически и случайно. Мы не можем определить какой-либо шаблон, и если попытка вызова ejb будет предпринята два или три раза, он успешно пройдет.

Подробности Env: сервер: weblogic 10.0 MP1 работает на Java 1.5 ОС: солярис

Просьба вернуть, если требуются какие-либо другие детали.

Источник, используемый для поиска:

private TreControlRemote getController() throws Exception {
    Context context = null;
    Properties p = new Properties();
    TreControlHome treHome = null;
    TreControlRemote remote = null;
    ConfigurationLoader lAppLoader = null;
    try {
        mLog.debug("Entering");
        lAppLoader = PropertiesFileLoader.getInstance("context.properties");
        p.put(Context.INITIAL_CONTEXT_FACTORY, lAppLoader.getValue("INITIAL_CONTEXT_FACTORY"));
        p.put(Context.PROVIDER_URL, lAppLoader.getValue("PROVIDER_URL"));
        context = new InitialContext(p);
        mLog.debug("context : " + context.getEnvironment());
        remote = null;
        treHome = (TreControlHome) context.lookup("CONTROL");
        mLog.debug("Object --->>>>" + treHome);
        remote = (TreControlRemote) treHome.create();
        mLog.debug("Leaving");
    } catch (Exception ex) {
        mLog.fatal("Exception while getting remote", ex);
        ex.printStackTrace();
        throw ex;
    } finally {
        lAppLoader = null;
    }
    return remote;
}

URL-адрес - это виртуальный ip, указывающий на управляемый сервер 2, и он содержит ejb с jndi "CONTROL". Проблема заключается в том, что в некоторых случаях он срабатывает успешно и случайно завершается с ошибкой:

трассировка стека ошибки:

*javax.naming.CommunicationException [Root exception is java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.io.StreamCorruptedException]
at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:74)
at weblogic.jndi.internal.WLContextImpl.translateException(WLContextImpl.java:426)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:382)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:367)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
```````````````````````````````````````````````````````````````````
Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.io.StreamCorruptedException
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:221)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:338)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:252)
at weblogic.jndi.internal.ServerNamingNode_1001_WLStub.lookup(Unknown Source)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:379)
... 33 more
Caused by: java.io.StreamCorruptedException
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1332)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:195)
at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:565)
at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:191)
at weblogic.jndi.internal.RootNamingNode_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:589)
at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:224)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:479)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:475)
at weblogic.rmi.internal.BasicServerRef.access$300(BasicServerRef.java:59)
at weblogic.rmi.internal.BasicServerRef$BasicExecuteRequest.run(BasicServerRef.java:1016)
... 2 more*

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

*####<Aug 25, 2009 2:11:04 AM BST> <Info> <RJVM> <pkssv049> <M1AP4> <ACTIVE ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <1251162664181> <BEA-000513> <Failure in heartbeat trigger for RJVM: 5433424963141690658S:169.93.73.0:10040,10040,-1,-1,-1,-1,-1:pkssv049.***.net:10240,pkssv049.***.net:10241,pkssv050.***.net:10240,pkssv050.***.net:10241:LIQP1_LMSDomain:M1AP3
java.io.IOException: The connection manager to ConnectionManager for: 'weblogic.rjvm.RJVMImpl@189ed0e - id: '5433424963141690658S:169.93.73.0:10040,10040,-1,-1,-1,-1,-1:pkssv049.***.net:10240,pkssv049.***.net:10241,pkssv050.***.net:10240,pkssv050.***.net:10241:LIQP1_LMSDomain:M1AP3' connect time: 'Mon Aug 24 20:24:02 BST 2009'' has already been shut down.
java.io.IOException: The connection manager to ConnectionManager for: 'weblogic.rjvm.RJVMImpl@189ed0e - id: '5433424963141690658S:169.93.73.0:10040,10040,-1,-1,-1,-1,-1:pkssv049.***.net:10240,pkssv049.***.net:10241,pkssv050.***.net:10240,pkssv050.***.net:10241:LIQP1_LMSDomain:M1AP3' connect time: 'Mon Aug 24 20:24:02 BST 2009'' has already been shut down
at weblogic.rjvm.ConnectionManager.getOutputStream(ConnectionManager.java:1686)
at weblogic.rjvm.ConnectionManager.createHeartbeatMsg(ConnectionManager.java:1629)
at weblogic.rjvm.ConnectionManager.sendHeartbeatMsg(ConnectionManager.java:607)
at weblogic.rjvm.RJVMImpl$HeartbeatChecker.timerExpired(RJVMImpl.java:1540)
at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:464)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)*

Любая помощь будет принята с благодарностью.

Вот дополнительная информация ..

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

Есть ли другие ошибки / предупреждения, зарегистрированные на локальном сервере или на удаленном сервере? Мы видим много ошибок в соединении в журнале weblogic

Оба управляемых сервера находятся в одном домене? Да

Ответы [ 2 ]

0 голосов
/ 12 марта 2011

Эта проблема может возникнуть, если у вас есть Дублирующая запись для или из-за пробела между ними.

Вам нужно проверить все файлы конфигурации, включая JDBC, JMS и файл config.xml, чтобы найти их и ввести.

Проверьте, не оставили ли вы пробел при вводе имени JNDI с консоли.

Удаление пробела или удаление дублирующейся записи решает эту проблему.

0 голосов
/ 17 ноября 2009

когда вы передаете экземпляр com.myclientcompany.server.eai.interactionspecimpl в качестве аргумента твой ejb. WebLogic должен десериализовать (демаршировать) объект в контексте EJB, и ему нужен необходимый класс для демаршаллинга. поэтому, если вы включите класс взаимодействия в ваш файл ejb-jar, вам не нужно включать эти классы в путь к классам вашего сервера

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...