簡體   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