模拟收发LOTUS邮件的连接错误解决方案

   我的的项目是一个在DOMINO服务器上,用一个用户帐号在规定的时间内模拟收、发邮件,其实是很简单一个东西,但是运行后发现问题是大大的,搞了3天,查不到资料解决。

这个错误是发生在连接DOMINO数据库的CORBA释放连接时出的错,大家都知道,使用JAVA连接DOMINO,就要在DOMINO服务器上启动DIIOP服务,其实这个DIIOP就是基于CORBA操作的,但是LOTUS提供的JAR包,显然是有问题的。对了,忘记说我的环境是DOMINO5.08,那时的JDK应该是1.3,但我用的JDK1.5,所以问题很严重。

   我查了一下,是LOTUS的线程报的错误,因为每次操作完数据库我都用session.recycle(),把资源释放掉,但是有时LOTUS的线程释放不了,就报下面的错误,这时,我打开CMD,打上netstat -n命令后,出现有向邮件服务器连着的死连接。随着程序不断运行,死连接越来越多。


Exception in Finalizer
org.omg.CORBA.INV_OBJREF: vmcid: 0x49420000 minor code: 64 completed: No
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.ibm.CORBA.iiop.ReplyMessage.getSystemException(ReplyMessage.java:93)
at com.ibm.CORBA.iiop.RepImpl.invoke(RepImpl.java:307)
at com.ibm.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:36)
at lotus.domino.corba._IItemStub.bulkDecRefCount(_IItemStub.java:557)
at lotus.domino.cso.CorbaFinalizer.run(CorbaFinalizer.java:79)
at java.lang.Thread.run(Unknown Source)
org.omg.CORBA.INV_OBJREF: vmcid: 0x49420000 minor code: 64 completed: No
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.ibm.CORBA.iiop.ReplyMessage.getSystemException(ReplyMessage.java:93)
at com.ibm.CORBA.iiop.RepImpl.invoke(RepImpl.java:307)
at com.ibm.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:36)
at lotus.domino.corba._IItemStub.bulkDecRefCount(_IItemStub.java:557)
at lotus.domino.cso.CorbaFinalizer.run(CorbaFinalizer.java:79)
at java.lang.Thread.run(Unknown Source)


如何是正常释放连接,提示如下:
Connection closed: Host = 10.68.100.233 (port 63148)


我在客户那呆了3天,一开始以为自己写的线程有问题,后来觉得JDK有问题,最后决定是不是DOMINO给的JAR包有问题呀。

 随后,我把DOMINO6.5的JAR包放在classpath下,问题解决了。看来,用JDK的高版本,就要用DOMINO的高版本提供的JAR包。请大家记住了!

你可能感兴趣的:(Lotus)