我在做什么
:
我有一个用Kotlin(JVM)编写的AWS Lambda,它从队列中读取消息并在MySQL表中写入内容。
我使用MyBatis就是为了这个目的,这是我在处理程序中所做的简短简化片段:
// initializing configuration
val dataSource = PooledDataSource(driver, url, username, password)
val environment = Environment(environmentName, JdbcTransactionFactory(), dataSource)
val configuration = Configuration(environment)
try {
val builder = SqlSessionFactoryBuilder()
val session = builder.build(configuration).openSession()
val mapper: CustomMapper = session.getMapper(CustomMapper::class.java)
mapper.doSomething()
session.commit()
} finally {
session.close()
}
我的问题
:
执行此Lambda时,数据库上的某些连接保持打开状态。只有当lambda容器自动销毁时,它们才会被销毁。
既然我关闭了所有的会话,为什么会发生这种情况?我能做些什么来防止这种行为?