"源地址无效"使用SMPP服务器

时间:2017-10-17 05:34:33

标签: smpp oracle-soa oracle-enterprise-manager

从过去的8个月开始,我们的一切都运转良好,突然间我们开始收到此错误。

我们在Oracle EM控制台中配置了SMPP驱动程序属性,并使用与Oracle SOA服务器集成的UMS发送SMS。

找到与此错误相关的链接,但它没有帮助:

https://support.nowsms.com/discus/messages/485/1176.html

  

[2017-10-17T10:33:16.806 + 05:30] [WLS_SOA] [错误] [SDP-25700]   [oracle.sdp.messaging.driver.smpp] [tid:Workmanager :,版本:0,   Scheduled = false,Started = false,等待时间:0 ms \ n] [userId:   OracleSystemUser] [ecid:   49d20b62a8084325:-5336381e:15f247fea2f:-8000-000000000001c322,0] [APP:   usermessagingdriver-smpp]发现了一个意外的异常。[[   oracle.sdp.messaging.driver.DriverException:无效的源地址[a]     在   oracle.sdpinternal.messaging.driver.smpp.SMPPDriver.send(SMPPDriver.java:1073)     在   oracle.sdpinternal.messaging.driver.smpp.SMPPDriver.send(SMPPDriver.java:3268)     在   oracle.sdpinternal.messaging.driver.smpp.SMPPDriver.send(SMPPDriver.java:2849)     在   oracle.sdpinternal.messaging.driver.smpp.SMPPDriver.send(SMPPDriver.java:2724)     在   oracle.sdpinternal.messaging.driver.smpp.SMPPManagedConnection.send(SMPPManagedConnection.java:95)     在   oracle.sdpinternal.messaging.driver.DriverConnectionImpl.send(DriverConnectionImpl.java:41)     在   oracle.sdpinternal.messaging.dispatcher.DriverDispatcherBean.onMessage(DriverDispatcherBean.java:296)     at sun.reflect.GeneratedMethodAccessor1629.invoke(Unknown Source)at   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:606)at   com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)     在   com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)     在   com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)     在   com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)     在   com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)     在   com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)     在   com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)     在   com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)     在   com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)     在com.sun.proxy。$ Proxy532.onMessage(未知来源)at   oracle.sdpinternal.messaging.dispatcher.DriverDispatcherBean_xfokw2_MDOImpl .__ WL_invoke(未知   来源)at   weblogic.ejb.container.internal.MDOMethodInvoker.invoke(MDOMethodInvoker.java:35)     在   oracle.sdpinternal.messaging.dispatcher.DriverDispatcherBean_xfokw2_MDOImpl.onMessage(未知   来源)at   oracle.sdpinternal.messaging.jmsmessagereceiver.ResourceAdapterImpl $ RaMessageListener.onMessage(ResourceAdapterImpl.java:167)     在   oracle.sdpinternal.messaging.jms.QueueWorker.run(QueueWorker.java:73)     在   weblogic.work.j2ee.J2EEWorkManager $ WorkWithListener.run(J2EEWorkManager.java:184)     在weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)

     

]] [2017-10-17T10:33:16.807 + 05:30] [WLS_SOA] [通知]   [SDP-26003] [oracle.sdp.messaging.driver.dispatcher] [tid:   Workmanager :,版本:0,Scheduled = false,Started = false,等待时间:   0 ms \ n] [userId:OracleSystemUser] [ecid:   49d20b62a8084325:-5336381e:15f247fea2f:-8000-000000000001c322,0] [APP:   usermessagingdriver-smpp] Dispatcher发送了带有id的消息:   eb50c4cdc0a800ab12d5fbbdbbbbd46a。

网络日志(使用Wireshark):

enter image description here

1 个答案:

答案 0 :(得分:0)

我们找出并解决了这个问题。在这里发布其决议。也许它可以帮助别人,节省宝贵的时间。

在Oracle EM控制台中配置的SMPP驱动程序存在一个错误,即使您从驱动程序配置传递它,源地址和默认源地址也始终为空。

  

这是由于SMSC的多个源地址,我们的系统传递了null   源地址字段中的值。由于这个SMSC不能   识别正确的源地址并抛出“无效的来源”   地址"异常。

     

如果在SMSC配置了单/静态源地址,那么你可以   传递空值,SMSC将自动识别源地址。