【问题标题】:GWAN servlet life cycleGWAN servlet 生命周期
【发布时间】:2014-12-01 17:40:10
【问题描述】:

我正在使用 C servlet 和京都机柜来存储数据库。

我的问题是,G-wan 如何调用 servlets ?

与 java servlet 相比,它们具有 init 和 service destroy 生命周期? gwan 是如何工作的?

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请求共享?

【问题讨论】:

    标签: database servlets g-wan


    【解决方案1】:

    G-WAN 即时编译 servlet,并在请求地址时运行它们。例如:当 /?hello.c 或 /?hello 请求时运行 hello.c 等等......所以当请求结束时你的 servlet 范围的变量被释放。所以你必须使用服务器、虚拟主机或处理程序范围的指针来保存你的变量。要设置全局指针,您可以查看该基本示例:
    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

    【讨论】:

    • “当 [a] 请求结束时,您的 servlet 范围的变量 [are] 被释放” 它仅在脚本已被编辑并因此由 G-WAN 自动重新加载时发生。其余时间,servlet 变量是静态的(仅限于 servlet 的范围),因此需要“全局”(可共享)指针。
    • 这意味着一个请求gwan将启动一个java进程来处理它。所以这可能是不好的方法,java冷启动它很慢。
    猜你喜欢
    • 2013-02-06
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    • 2023-03-03
    • 2018-04-27
    • 2012-10-07
    • 1970-01-01
    相关资源
    最近更新 更多