1

在我们的 Oracle IDM 环境中,我们实施了 OTP 来向用户发送 SMS。

所以我们使用 SMS Vendor 在 SOA 服务器上安装了 SMPP 驱动程序,一切正常,OTP 运行良好。但是当我们将 SMS Vendor 更改为另一个时,OTP 有时会成功,但大多数情况下会失败。每 30 秒还会引发一次“读取超时”异常。

另一件重要的事情是,当我们尝试在同一台服务器上使用独立的 smpp 客户端向新供应商发送 SMS 时,它工作正常。

为什么客户端可以完美发送短信但使用 SOA 服务器不能?

以下异常每 30 秒显示一次:

<Aug 1, 2017 8:24:48 AM GMT> <Error> <oracle.sdp.messaging.driver.smpp> <SDP-25700> <An unexpected exception was caught.
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:152)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at java.net.SocketInputStream.read(SocketInputStream.java:210)
at java.io.DataInputStream.readInt(DataInputStream.java:387)
at oracle.sdpinternal.messaging.driver.smpp.SMPPDriver.readCommand(SMPPDriver.java:715)
at oracle.sdpinternal.messaging.driver.smpp.SMPPDriver.readAnswer(SMPPDriver.java:771)
at oracle.sdpinternal.messaging.driver.smpp.SMPPDriver.access$700(SMPPDriver.java:145)
at oracle.sdpinternal.messaging.driver.smpp.SMPPDriver$SMPPReceivingReader.run(SMPPDriver.java:1813)
at weblogic.connector.security.layer.WorkImpl.runIt(WorkImpl.java:108)
at weblogic.connector.security.layer.WorkImpl.run(WorkImpl.java:44)
at weblogic.connector.work.WorkRequest.run(WorkRequest.java:95)
at weblogic.connector.work.LongRunningWorkRequest.run(LongRunningWorkRequest.java:29)
at java.lang.Thread.run(Thread.java:745)

当 OTP 发送失败时,将显示以下异常:

<Aug 1, 2017 8:25:21 AM GMT> <Error> <oracle.sdp.messaging.driver.smpp> <SDP-25700> <An unexpected exception was caught.
oracle.sdpinternal.messaging.driver.smpp.SMPPDriver$ConnectFailedException: java.net.SocketTimeoutException: Read timed out
at oracle.sdpinternal.messaging.driver.smpp.SMPPDriver.openTransmitterSocket(SMPPDriver.java:2961)
at oracle.sdpinternal.messaging.driver.smpp.SMPPDriver.send(SMPPDriver.java:3146)
at oracle.sdpinternal.messaging.driver.smpp.SMPPDriver.send(SMPPDriver.java:2849)
at oracle.sdpinternal.messaging.driver.smpp.SMPPDriver.send(SMPPDriver.java:2724)
at oracle.sdpinternal.messaging.driver.smpp.SMPPManagedConnection.send(SMPPManagedConnection.java:95)
at oracle.sdpinternal.messaging.driver.DriverConnectionImpl.send(DriverConnectionImpl.java:41)
at oracle.sdpinternal.messaging.dispatcher.DriverDispatcherBean.onMessage(DriverDispatcherBean.java:296)
at sun.reflect.GeneratedMethodAccessor3298.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at com.sun.proxy.$Proxy507.onMessage(Unknown Source)
at oracle.sdpinternal.messaging.dispatcher.DriverDispatcherBean_xfokw2_MDOImpl.__WL_invoke(Unknown Source)
at weblogic.ejb.container.internal.MDOMethodInvoker.invoke(MDOMethodInvoker.java:35)
at oracle.sdpinternal.messaging.dispatcher.DriverDispatcherBean_xfokw2_MDOImpl.onMessage(Unknown Source)
at oracle.sdpinternal.messaging.jmsmessagereceiver.ResourceAdapterImpl$RaMessageListener.onMessage(ResourceAdapterImpl.java:167)
at oracle.sdpinternal.messaging.jms.QueueWorker.run(QueueWorker.java:73)
at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:184)
4

0 回答 0