繁体   English   中英

Mirth Connect 接口引擎上的 dbConn.executeCachedQuery(SQLStatement) 问题

[英]Question to dbConn.executeCachedQuery(SQLStatement) on Mirth Connect Interface Engine

由于 Oracle DB 中进程和会话的最大限制设置过低,有时会在 mirth 中出现以下错误:

DBConnection - java.sql.SQLException:侦听器拒绝连接并出现以下错误:ORA-12516,TNS:侦听器找不到具有匹配协议堆栈的可用处理程序

由于 dbConn.executeCachedQuery(SQLStatement) 与 Mirth 中的DatabaseConnection

所以这些是我的问题:

  1. 有没有办法在频道中抛出这个响应/异常?
  2. SQL 查询的所有数据是否“丢失”异常,如果发生此错误或是否有自动重试?
  3. 是否有处理此问题的最佳实践(例如,首先使用getConnection()方法检查连接)?

我会按顺序回答你的问题:

1) 如果您使用的是 javascript 连接器,那么您应该在启动连接时将其放入 try catch 中。 在捕获中,只需将错误输入为 Logger.Error(exceptionGoesHere)。

如果您正在使用 db 连接器,这应该会在日志中自动抛出。 要确保在通道级别启用日志记录,请访问 Mirth Connect 服务器管理器,单击服务器选项卡并确保通道日志级别至少设置为错误。

2) Mirth Connect 的工作方式是,每次发起消息时,它都会击中 Mirth DB 的某些点以及时保存消息在该时间点的状态。 这就是 Mirth 保证消息传递的方式。 话虽如此,您始终可以手动“重试”发送。 否则,如果您使用的是 DB 连接器,则在 Database Reader Settings 部分下有一个选项可以为您处理此问题。 重试使您可以选择重试次数以及以毫秒为单位的重试间隔。 当我在那里工作时,默认设置为 10 秒后重试 3 次。

3) 使用默认的数据库连接器。 一切都已为您内置。 将额外的处理放在变压器中以处理其他任何事情。 如果一切都已构建是最佳实践,请不要尝试重新发明轮子。

如果您坚持使用代码解决方案,那么请确保您的所有代码都在 try catch 中,并确保您的 catch 实际上正在注销错误异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM