2011-07-04 2 views
0

sqlite 및 mod-wsgi를 사용하여 웹 응용 프로그램의 데이터베이스에 액세스하는 함수에 여러 개의 ajax POST 호출을 호출하는 데 문제가 있습니다. 한 함수에 요청하는 데 아무런 문제가 없지만 다른 함수를 호출하자마자 "데이터베이스 잠김"오류가 발생하기 시작했습니다. 변수를 전역 변수로 설정하고 두 함수에서 액세스하는 것뿐 아니라 각 함수에서 데이터베이스를 열거 나 닫는 것은 아무 소용이 없습니다.WSGI 파이썬 응용 프로그램에서 SQLite 데이터베이스 오류가 잠겼습니다.

코드에 하나의 응용 프로그램 기능 만있는 경우 데이터베이스와의 적절한 인터페이스는 무엇입니까? 실? 지속적인 연결?

이전에 장고를 사용했지만 내 로컬 컴퓨터에서 실행되는이 간단한 응용 프로그램에 대해 베어 본을 원했습니다.

코드의 관련 섹션은 다음과 같습니다

con = sqlite3.connect("/var/www/Knowledge/eurisko.sqlite") 
con.row_factory = sqlite3.Row 
cursor = con.cursor() 
cursor.execute("update notes_content set c1content=?, c2timestamp=? 
where c0title=?", [content, timestamp, title]) 
con.commit() 
cursor.close() 
con.close() 

전체 파일은 여기에 있습니다 : http://pastebin.com/7yuiZFi2

내가 libapache2-modwsgi 및 파이썬 2.7와 우분투 10 아파치 2.2을 실행하고 있습니다.

+0

전체 추적을 게시 하시겠습니까? – bernie

답변

0

SQLite 설명서에서 여러 프로세스의 동시 액세스에 대한 경고를 참조하십시오.

http://www.sqlite.org/faq.html#q5

이 정보는 질문도 질문했다 mod_wsgi에 목록에 제공하지만, 여기에 다음되었다.

Apache/mod_wsgi는 단일 및 다중 프로세스 구성을 모두 지원하므로 문제가 될 수 있습니다. 아마 OP가 다중 프로세스 구성을 사용하고 있습니다. 참조 :

http://code.google.com/p/modwsgi/wiki/ProcessesAndThreading

를 아파치/mod_wsgi에 공정/스레딩 모델의 설명.

관련 문제