我用芭蕾舞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版本吗? –