2014-10-07 2 views
1

C 서블릿과 교토 캐비닛을 사용하여 데이터베이스를 저장하고 있습니다.GWAN 서블릿 수명주기

제 질문은 G-wan이 서블릿을 어떻게 호출합니까?

자바 서블릿과 비교할 때 init 및 service destroy life cycle이 있습니까? 어떻게 관이 작동하나요?

int main(int argc, char *argv[]) 
{  
    KCDB *db = kcdbnew(); 

    if(!kcdbopen(db, "casket.kch",KCOREADER)) { 
    fprintf(stderr, "open error: %s\n", kcecodename(kcdbecode(db))); 
    } 

데이터베이스 연결을 먼저 열고 여러 http 요청과 공유 할 수 있습니까?

답변

1

G-WAN은 서블릿을 즉시 컴파일하고 주소 요청시이를 실행합니다. 예를 들면 :/?hello.c 또는 /? hello가 요청되었을 때 hello.c를 실행합니다 ... 그래서 요청이 끝나면 서블릿 전체 변수가 해제됩니다. 따라서 서버, 가상 호스트 또는 핸들러 와이드 포인터를 사용하여 변수를 유지해야합니다. 글로벌 포인터를 설정하려면 해당 기본 예제를 볼 수 있습니다 :
http://gwan.com/source/persistence.c

또한 이러한 링크를 볼 수 있습니다 :
- GWAN Key-Value persistent multiple store
- GWAN Key-Value persistent store
- How to hold data structures in memory G-wan with Java/Scala
- https://stackoverflow.com/a/16278305/1576270
- http://gwan.com/source/mysql.c

+0

매우 명확한 대답 –

+1

* "서블릿 전체 변수는 요청이 끝나면 해제됩니다."* 스크립트가 편집되었을 때만 발생합니다. 따라서 G-WAN에 의해 ​​자동으로 다시로드됩니다. 나머지 시간에는 서블릿 변수가 ** 정적 ** (서블릿의 범위로 제한됨)이므로 "전역"(공유 가능) 포인터가 필요합니다. – Gil

+0

하나의 요청으로 gwan이 처리하는 Java 프로세스를 시작합니다. 그래서 그것은 나쁜 방법 일 수 있습니다, 자바 감기에 매우 느리게 시작합니다. –