A light http server for StrixStore
Copyright © 2010 StrixDB. Freely available under the terms of the StrixDB license.
StrixServer provided in the distribution is a light alternative for a SPARQL server. Full featured HTTP1.1 server like Apache or Microsoft IIS offers better scalability, security but are more complex to administrate.
StrixServer is thought for Lua: it could be used has a Lua console, parameters are described in Lua language, and dynamic Lua pages could be used.
To check the validity of installation, run once the server with the default configuration file conf.lua :
C:\RDFtest> StrixServer -i -c conf.lua
Then, in a web browser, ask for http://localhost/cgi/?infos You will get ISAPI information.
Ask now for http://localhost/cgi/?graphs You will get a RDF file describing the graphs in the RDF store: now, only the default graph and empty (0 triples).
Parameters :
name = <string> | the server name | default = StrixServer |
port = <number> | port of server | default = 80 |
IPaddress=<string> | default = "localhost" | |
threadsCount=<number> | number of threads | default = 10, maximum allowed = 100 |
log= <table> | if the parameter table is empty {}, there is no no connection log. | |
Advanced parameters | ||
keepAlive = <boolean> | if true, keep the socket connection alive, even when client don't specify keepAlive=true |
default = false |
autoExpires=<boolean> | if true each alive connection is automatically closed after
60 seconds of ianctivity |
default = true |
queueSize = <number> | Length of the queue of pending
connections waiting for a free thread of the pool | default = 10 |
idleTimeout = <number> | time in millisecond before a idle connection is closed. | default = 10000 |
sendTimeout = <number> | time in millisceonf before a not
responding connection is considered to be closed. | default =5000 |
IOCPqueue = <boolean> | if true, use the IOCP (windows specific) | default = false |
DNSlookup = <boolean> | if true, resolves addresses with DNS | default = false |
About Threads and Variable visibility
Each call of the RDF store is made inside the context of the calling thread. Each thread has is own Lua environment.
For this reason, lua variables or functions declarated in one thread (one call of StrixStrore) is not visible in other threads.
it means that each connection is thread-isolated :