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

Him*_*shu 6 oracle smpp oracle-soa oracle-enterprise-manager oim

描述:

  • 我们正在使用部署在SOA服务器上的sdpmessagingdriver-smpp驱动程序来发送SMS消息.
  • 我们使用"发件人地址"和"默认发件人地址"配置了SMPP驱动程序属性.
  • 当我们尝试发送短信时,它失败并显示错误消息"无效的源地址".

经过一些调查后,我们发现submit_sm请求中的发件人地址为空,这导致问题"源地址无效".现在出现的问题是,在SMPP驱动程序配置设置中已经配置了发件人请求时,为什么发件人地址为空?我们需要在其他地方配置发件人地址吗?是否有配置文件来配置此设置?

参考屏幕截图:

SMPP驱动程序特定配置:

  • 您可以看到配置中提供了发件人地址默认发件人地址.

在此输入图像描述

消息状态(SMS失败日志):

  • 下面提供的屏幕截图显示了发件人地址为空白的SMS消息

在此输入图像描述

后端错误日志:

[2017-10-17T10:33:16.806 + 05:30] [WLS_SOA] [错误] [SDP-25700] [oracle.sdp.messaging.driver.smpp] [tid:Workmanager :,版本:0,预定= false ,Started = false,等待时间:0 ms \n] [userId:OracleSystemUser] [ecid:49d20b62a8084325:-5336381e:15f247fea2f:-8000-000000000001c322,0] [APP:usermessagingdriver-smpp]捕获到意外的异常.[[ oracle.sdp.messaging.driver.DriverException:位于oracle.sdpinternal.messaging.ddver.smpp.SMPPDriver的oracle.sdpinternal.messaging.driver.smpp.SMPPDriver.send(SMPPDriver.java:1073)中的源地址[a]无效.发送(SMPPDriver.java:3268)oracle.sdpinternal.messaging.driver.smpp.SMPPDriver.send(SMPPDriver.java:2849)at oracle.sdpinternal.messaging.driver.smpp.SMPPDriver.send(SMPPDriver.java:2724)位于oracle.sdpinternal.messaging.dispatcher.DriverDispa的oracle.sdpinternal.messaging.driver.smpp.SMPPManagedConnection.send(SMPPManagedConnection.java:95)at oracle.sdpinternal.messaging.driver.DriverConnectionImpl.send(DriverConnectionImpl.java:41)tcherBean.onMessage(DriverDispatcherBean.java:296)在sun.reflect.GeneratedMethodAccessor1629.invoke(未知来源)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在java.lang.reflect.Method.invoke(方法.的java:606)在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(德尔 egatingIntroductionInterceptor.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(来源不明)在oracle.sdpinternal .messaging.dispatcher.DriverDispatcherBean_xfokw2_MDOImpl .__ WL_invoke(未知来源)在weblogic.ejb.container.internal.MDOMethodInvoker.invoke(MDOMethodInvoker.java:35)在oracle.sdpinternal.messaging.dispatcher.DriverDispatcherBean_xfokw2_MDOImpl.onMessage(未知来源)在预言. sdpinternal.messaging.jmsmessagereceiver.ResourceAdapterImpl $ RaMessageListener.onMessage(ResourceAdapterImpl.java:167)位于weblogic.work.j2ee.J2EE的oracle.sdpinternal.messaging.jms.QueueWorker.run(QueueWorker.java:73)webManager $ 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]调度程序发送的消息的ID为:eb50c4cdc0a800ab12d5fbbdbbbbd46a.

Him*_*shu 2

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

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

这是由于 SMSC 上有多个源地址,并且我们的系统在源地址字段中传递了空值。由于此 SMSC 无法识别正确的源地址并抛出“无效源地址”异常。

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