我用芭蕾舞0.91,並嘗試做一個REST獲得服務爲獲得在Oracle DATABSE一些數據。以下是使用sql:ClientConnector的Oracle信息。WSO2芭蕾舞女演員使用DB連接與服務
service<http> MyService {
@http:GET {}
@http:Path {value: "/myService"}
resource apiGET (message m) {
string driverClass = "oracle.jdbc.driver.OracleDriver";
string dbURL = "jdbc:oracle:thin:@xxx:1521:yyy";
string username = "aaa";
string password = "bbb";
map propertiesMap = {"driverClassName":driverClass,"jdbcUrl":dbURL, "username":username, "password":password};
sql:ClientConnector myConnection = create sql:ClientConnector(propertiesMap);
<getting data from the database and prepare to send back to client>
message response = {};
messages:setJsonPayload(response, myData);
sql:ClientConnector.close(myConnection);
reply response;
}
}
因此,使用中的每個數據庫連接GET我都開到數據庫的連接,並在結束時再次將其關閉。這是花費時間的。
我也可以打開服務水平的DB連接,所以到外面,這將打開數據庫連接一次,並且得到我可以一直使用DB內。這是非常快,在運行裏面的服務作曲家一切工作正常,即使我用並行數次一些客戶搞定了,我不跑了DB聯繫。 但是當我編譯服務的我運行服務爲
ballerina run -s myService.balx
所以我用完DB聯繫,我也得到了一些異常。
我該如何彙集數據庫連接的方式,以便我可以重用每個GET的連接,並在完成GET之前將其發送回池。 服務關閉時如何關閉數據庫連接?
任何一般的設計暗示是值得歡迎的。
你好,謝謝你的迴應,我現在使用的0.92和改變根據新的規範我的代碼。至於在作曲家中使用它,它工作正常,並且使用編譯(balx)版本編寫時遇到了一些問題,所以期待修復。 – Igor
嗨,上面的問題已經修復。你可以檢查0.95版本嗎? –