通过 SOA/UMS 触发 SMS,未从 sdpmessagingdriver-smpp 驱动程序配置设置中获取发件人地址

Triggered SMS through SOA/UMS not getting Sender Address from sdpmessagingdriver-smpp driver configuration settings

描述:

After some investigation we found that Sender Address in submit_sm request is null, which is causing issue "Invalid Source Address". Now question arises that why Sender Address is blank in submit request when it is already configured in SMPP driver configuration settings? Do we need to configure Sender Address somewhere else? Is there any configuration file to configure this setting?

参考屏幕截图:

SMPP 驱动程序特定配置:

消息状态(短信失败日志):

后端错误日志:

[2017-10-17T10:33:16.806+05:30] [WLS_SOA] [ERROR] [SDP-25700] [oracle.sdp.messaging.driver.smpp] [tid: Workmanager: , Version: 0, Scheduled=false, Started=false, Wait time: 0 ms\n] [userId: OracleSystemUser] [ecid: 49d20b62a8084325:-5336381e:15f247fea2f:-8000-000000000001c322,0] [APP: usermessagingdriver-smpp] An unexpected exception was caught.[[ oracle.sdp.messaging.driver.DriverException: Invalid Source Address[a] at oracle.sdpinternal.messaging.driver.smpp.SMPPDriver.send(SMPPDriver.java:1073) at oracle.sdpinternal.messaging.driver.smpp.SMPPDriver.send(SMPPDriver.java:3268) 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.GeneratedMethodAccessor1629.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.$Proxy532.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) at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30) ]] [2017-10-17T10:33:16.807+05:30] [WLS_SOA] [NOTIFICATION] [SDP-26003] [oracle.sdp.messaging.driver.dispatcher] [tid: Workmanager: , Version: 0, Scheduled=false, Started=false, Wait time: 0 ms\n] [userId: OracleSystemUser] [ecid: 49d20b62a8084325:-5336381e:15f247fea2f:-8000-000000000001c322,0] [APP: usermessagingdriver-smpp] Dispatcher sent message with id: eb50c4cdc0a800ab12d5fbbdbbbbd46a.

我们发现并解决了这个问题。在此处发布其决议。也许它可以帮助其他人并节省他们宝贵的时间。

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

It was due to multiple Source Address at SMSC and our system was passing null value in Source Address field. Due to this SMSC was not able to recognize correct source address and throw "Invalid Source Address" exception.

If single/static source address is configured at SMSC then you can pass null values and SMSC will automatically recognize source address.