Mule:DB插入失败,超时

Mule:DB插入失败,超时,mule,Mule,我正在尝试将数据插入数据库表中&出现以下错误: 异常堆栈是: 1.超过超时(java.util.concurrent.TimeoutException) com.ning.http.client.providers.grizzly.grizzlysynchttpprovider:426(空) 2.发送HTTP请求时出错。消息负载的类型为:String(org.mule.api.MessaginException) org.mule.module.http.internal.request.Def

我正在尝试将数据插入数据库表中&出现以下错误:

异常堆栈是: 1.超过超时(java.util.concurrent.TimeoutException) com.ning.http.client.providers.grizzly.grizzlysynchttpprovider:426(空) 2.发送HTTP请求时出错。消息负载的类型为:String(org.mule.api.MessaginException) org.mule.module.http.internal.request.DefaultHttpRequester:287()


根异常堆栈跟踪: java.util.concurrent.TimeoutException:超出超时 位于com.ning.http.client.providers.grizzly.grizzlysynchnttprovider.timeout(grizzlysynchnttprovider.java:426) 位于com.ning.http.client.providers.grizzly.grizzlysynchnttprovider$3.onTimeout(grizzlysynchnttprovider.java:274) 在org.glassfish.grizzly.utils.IdleTimeoutFilter$DefaultWorker.doWork(IdleTimeoutFilter.java:398) 在org.glassfish.grizzly.utils.IdleTimeoutFilter$DefaultWorker.doWork(IdleTimeoutFilter.java:377) 位于org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable.run(DelayedExecutor.java:158) 位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 运行(Thread.java:745)


我的插入代码如下:

     <flow name="api-main">
   <http:listener config-ref="db-system-api-httpListenerConfig" path="/api/*" doc:name="HTTP"/>
    <apikit:router config-ref="db-system-api-config" doc:name="APIkit Router"/>
    <exception-strategy ref="db-system-api-apiKitGlobalExceptionMapping" doc:name="Reference Exception Strategy"/>
    </flow>

    <flow name="put:/contract/{id}:db-system-api-config" processingStrategy="synchronous" >
    <set-property propertyName="Content-Type" value="application/json" doc:name="Set Content Type"/>
    <logger message="#[payload]" level="INFO" doc:name="Initial Payload"/>

    <json:json-to-object-transformer returnClass="java.util.HashMap" mimeType="text/plain" doc:name="JSON to Object"/>


        <foreach collection="#[payload.entrySet()]" doc:name="For Each">
        <db:insert config-ref="Oracle_Configuration" doc:name="Database">
        <db:parameterized-query><![CDATA[INSERT INTO XX.XX_OE_HDR (ID,
                                                                               NUMBER,
                                                                                EFF_START_DATE,
                                                                                EFF_END_DATE,   
                                                                                CUST_NUMBER) 
                                                                                VALUES (xx.XX_HDR_SEQ.NEXTVAL,   
                                                                                        xx.XX_HDR_NUM_SEQ.NEXTVAL,
                                                                                       TO_DATE('2017-05-23','YYYY-MM-DD HH24:MI:SS'),
                                                                                       TO_DATE('2017-06-23','YYYY-MM-DD HH24:MI:SS'),
                                                                                        #[payload.myField])]]></db:parameterized-query>
         </db:insert>
         </foreach>
        <logger message="Record successful" level="INFO" doc:name="Log Success"/>

根据com.ning.http.client上超过的
超时
您的问题位于http请求中。据我所知,Oracle数据库(与大多数常见数据库一样)使用TCP协议进行传输,而您的问题位于http超时

您能否提供完整的流程,以及如何触发流程


另一方面,您是否可以尝试隔离问题并替换记录器的数据库,并检查对流的http请求是否没有问题?(假设您通过http请求触发此流)

有任何输入吗?感谢您回复Mario,请签出更新的代码。我将尝试用记录器替换DB