当社の Oracle IDM 環境では、SMS をユーザーに送信するために OTP を実装しました。
そのため、SMS Vendor を使用して SOA サーバーに SMPP ドライバーをインストールしました。すべて問題なく、OTP は正常に機能しています。しかし、SMS Vendor を別のものに変更すると、OTP が成功することもありますが、ほとんどの場合失敗します。また、「読み取りタイムアウト」例外が 30 秒ごとにスローされます。
もう 1 つの重要なことは、同じサーバー上でスタンドアロンの smpp クライアントを使用して新しいベンダーに SMS を送信しようとしたとき、正常に動作していることです。
クライアントが 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)