SQLite 데이터베이스와 봄을 사용하는 응용 프로그램을 개발하고 있습니다.스프링 + SQLite 멀티 스레드 응용 프로그램에서
<bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close" lazy-init="true">
<property name="driverClassName" value="org.sqlite.JDBC" />
<property name="url" value="jdbc:sqlite:sample.db" />
<property name="initialSize" value="2" />
<property name="maxActive" value="20" />
<property name="maxIdle" value="5" />
<property name="poolPreparedStatements" value="true" />
</bean>
각 스레드 :
내가 구성된 하나의 데이터 소스이 '데이터베이스 파일이 잠겨'내가 오류 - 여러 스레드가 데이터베이스를 수정하려고 할 때 문제가있을 나는 데이터베이스에 삽입을 수행하는 JdbcDaoSupport 별도의 인스턴스가 :
getJdbcTemplate().update(
"insert into counts values(15)"
);
데이터베이스 업데이트를 수행하는 기능은 TRANSAC입니다 tional (모든 격리 수준을 시도했습니다. 각 경우마다 동일한 오류가 발생합니다).
다른 데이터베이스 (MySql)를 사용할 때 동일한 코드가 올바르게 작동합니다.
내 코드에 '수동'동기화를 추가하지 않고 어떻게 해결할 수 있습니까?
앱의 동시 발생 예상도는 어떻습니까? 설계 상 SQLite는 MySQL의 경우 fopen() 및 -not-을 대체하기위한 것입니다. 동시 데이터 액세스를 위해 2PL 또는 MVCC를 처리하도록 설계된 RDBMS가 필요하면 다른 RDBMS를 고려할 수 있습니다. MySQL, HSQLDB 또는 Derby는 모두 실제 클라이언트 - 서버를 지원합니다. – scottb