| How do I extract the contents of the zip or tar.gz archives? |
How to extract the zip file in Windows:
- Save the downloaded zip file to your hard drive.
- Right click on the file and select "extract all". This will open an extraction wizard.
- Click "next" and then choose the location to extract the files to, e.g. "C:\" (a short base path is recommended, because the zip file contains quite long path names).
- Click "next" and the extraction process should begin.
Otherwise you can use any third-party utilitym such as WinZip.
How to extract the tar.gz file in Linux/UNIX:
- Save the downloaded tar.gz file to the directoy of your hard drive where you want the Lightstreamer directory to be created (a short base path is recommended, because the archive contains quite long path names).
- Go to the target directory and type this command:
gzip -dc Lightstreamer.tar.gz | tar xf -
or:
gzip -dc Lightstreamer_Moderato.tar.gz | tar xf - depending on the edition you downloaded.
NOTE: The tar archive used for the UNIX/Linux distribution contains long filenames. If on Solaris you get a "tar checksum error", you must use GNU tar (gtar) to unpack the distribution. The problem is caused by a limitation in the original tar spec, which prevented it from archiving files with long pathnames. GNU tar (gtar) handles arbitrarily long pathnames and is freely available on many platforms. If you don't already have GNU tar installed on your system, you can obtain it from the GNU Project web server. |
| To integrate Lightstreamer in our system, do we need to change the HW or SW of the current Web server architecture? |
| No. The role of Lightstreamer Server is only to deliver the real-time updates to your pages. This means that you continue to leverage your existing infrastructure (i.e. Web server, application server, DB server, etc.). For example, if your site is based on a cluster of Apache Web servers, you will keep that cluster and simply add a Lightstreamer Server cluster. The Web servers will serve all the pages and resources of the Web application (HTML, JS, CSS, images, etc.). The Web application can be based on any frameworks, toolkits or paradigms, with no constraints. For example, the Web server could leverage a J2EE application server to have the HTML generated from JSP, servlets, Struts and JSF. The Lightstreamer Servers will deliver all the data updates directly to the browser. Please see http://www.lightstreamer.com/architecture.htm#dep for an architecture diagram. |
| Can I deploy the Web Server and Lightstreamer Server on the same machine? |
| You could, but usually it is better to dedicate at least one machine to Lightstreamer Server, if you are expecting high loads or many concurrent users. In any case, you will want to make sure that both the servers listen on standard HTTP ports (80 or 443). So, in order to avoid port conflicts, if you install the two servers on the same machine, some virtualization software should be used, in order to enable binding to the same ports. |
| How can I deploy my Web application, that uses Lightstreamer, on an external Web server? |
| Lightstreamer installation comes with a pre-installed Stock List Demo, whose static pages are delivered by Lightstreamer?s internal Web server (that should be used only for basic development and demo purpose). Deploying the Stock List Demo (or your own application) on an external Web server is pretty straightforward. Just follow the instructions that you can find under ?Lightstreamer\DOCS-SDKs\sdk_client_web\examples\StockListDemo\README.TXT?. |
| Does LS Server support JSP or other dynamic page creation technologies? Is it possible to deploy a JSP page in LS Server? |
| Lightstreamer Server does not replace your Web/application server. JSP pages will not be deployed in Lightstreamer Server but in your favorite Web/application server. Lightstreamer Server is used to deliver real-time updates directly to the client-side HTML pages generated from your JSP pages. For simple development and demo purpose, Lightstreamer Server includes a very basic Web server that can only deliver static HTML pages. But for production scenarios (or when you need dynamic server pages) an external Web-application server is recommended. |
| We have deployed a J2EE application. What would be the best way to integrate it with LS Server? |
| Two steps are required. You should include Lightstreamer’s JavaScript libraries inside your pages (that are still served by your app server). Then you should develop a Lightstreamer Data Adapter (and optionally a Metadata Adapter) to attach Lightstreamer Server to your data source. If the data source is a J2EE app server, you will probably use JMS to do the integration. But notice that you can choose whatever technology to integrate the Lightstreamer’s Adapters with your existing systems. |
| I have the requirement to put the server behind a single sign-on system. [...] |
I have the requirement to put the server behind a single sign-on system. My internal web servers already operate in the single sign-on environment. How would the Lightstreamer server integrate in such an environment?
Authentication and authorization in Lightstreamer are handled through a custom Metadata Adapter, i.e. a plug-in component written in Java or .NET that implements any custom logic. Lightstreamer Server provides some abstract interfaces whose implementation gives the integrator full and fine-grained control over what each user can see and do. When a Client opens a push session, it sends a username and a password (or a sessionId or any string-based token) to Lightstreamer Server, which queries the Metadata Adapter (custom code) to validate the received credentials. The Metadata Adapter is queried for any decision involving permissioning and quality-of-service for each specific user; for example: maximum bandwidth, grants to subscribe to a certain item, subscription modes, etc. The adapter-based integration logic makes it possible to rely on any third-party authentication and authorization systems.
So you will authenticate your user through your Web server, that will probably send a session-id back. The client will send the session-id to Lightstreamer Server when opening the push session. The Lightstreamer Server will deliver the session-id to the Metadata Adapter, that will validate it against your single-sign on system. |
| What is the idea behind the clustering of Lightstreamer? How it is different from normal web server clustering? |
| It is the same idea and technology. If a client loses the connection with a Lightstreamer Server, it tries to reconnect automatically and the Web load balancer will choose another Lightstreamer Server, recovering all the data subscriptions. The recovery is automatic and transparent, so that the users don't need to do anything. |
| Where should we deploy our Adapters and our Web pages? |
The Adapter-related resources should be put in a new directory, to be placed under the Lightstreamer Server directory tree, precisely under the "Lightstreamer/adapters" directory. The subtree should look like this:
* Lightstreamer
* adapters
* your-new-dir
adapters.xml
* lib
your-data-adapter.jar
your-metadata-adapter.jar
On the other hand, the "web" directory should be placed under an external Web server in order to supply the
pages to the clients. However, in the minimal tutorial demo scenario, Lightstreamer Server itself is used as a Web Server. In this case, the "web" directory can be placed under the Lightstreamer Server directory tree, precisely under the "Lightstreamer/pages" directory. |
| How can Lightstreamer integrate with monitoring tools? |
| Lightstreamer provides a JMX (Java Management Extensions) agent that exports real-time information on the Server’s status. Any JMX-compliant management console can attach to Lightstreamer’s agent and collect information. |
| Describe Lightstreamer's ability to report usage information. |
Lightstreamer provides a real-time Monitor Console that displays some metrics of Lightstreamer usage. An example can be seen at http://app.lightstreamer.com/MonitorConsole.
Furthermore the Lightstreamer logs can be leveraged to analyze the usage patterns of the users.
The JMX agent can provide similar information.
The custom Metadata Adapters can be implemented so that it tracks further usage parameters. |
| What information is Lighstreamer capable of logging? |
Lightstreamer contains a full-fledged logging system based on log4j. Multiple appenders can be defined to output the log in several ways (consoles, files, etc.). The log format can be fully customized for each appender. The logging detail level can be configured in a flexible way, at run time, by combining categories and priorities. The following is a list of available categories:
- logging of system components initialization
- logging of license check phase
- logging of client request dispatching
- logging of internal web server activity
- logging of parsing and elaboration of client requests
- logging of Data Adapters interactions
- logging of events pre-processing stage
- logging of internal thread management and events dispatching
- logging of InfoPump and ItemEventBuffers internal activity
- logging of socket write activity
- logging of web client errors
- logging of events of the Remote Data Adapter"
|
| Please describe available client metrics and how they might be reported back to the server. |
Several metrics are directly available on the server side. For example the number of lost messaged and filtered messages for each session are exported in real time through the JMX interface.
Any error that raises on the client side (JS libraries) can be transparently reported back to the Server through Lightstreamer’s remote debugging mechanism.
The client JS libraries contain a heuristic algorithm that detects CPU saturation and reports it back to the Server by requesting a slowing down in the data delivery." |
| Why are we seeing OutOfMemory exceptions in our log? |
Lightstreamer Server keeps the current field state
for all active sessions in memory.
This allows for reduction of the outbound data flow, as unchanged
fields are not sent, but at the expense of some memory.
This memory usage grows with:
- the number of active sessions
- the number of items subscribed to by each session
- the number of fields subscribed to for each item
- the buffer size (for DISTINCT mode subscriptions)
- the number of active keys (for COMMAND mode subscriptions)
However, the allocation of field values is not duplicated for all sessions
which subscribe to the same item.
In some installations it could be necessary to increase the heap size of the JVM used by Lightstreamer Server.
The memory setting can be made in LS.sh,
where the command line arguments for the Server Virtual Machine
are specified. The -Xmx argument sets the maximum memory.
Note that the memory allocation described above is not permanent,
but it is often not transient as well, hence you should carefully tune
the garbage collection parameters in order to take advantage of the
minor garbage collections and reduce the occurrence of the major
garbage collections.
In some cases, enlarging the size of the "young generation" memory
proved to be beneficial. |
| What is the "Unexpected end of handshake data" exception? |
There is a known bug in earlier Sun's Java JSSE implementations, which provokes a
"javax.net.ssl.SSLException: Unexpected end of handshake data"
message in the Lightstreamer log.
This happens when a Firefox browser opens an SSL connection to Lightstreamer Server. This error is always recovered and no issue arises for the final users. But upgrading to a JDK version where the bug was fixed is suggested in any case.
This bug was fixed in Java 6 update 12.
See http://java.sun.com/javase/6/webnotes/6u12.html and look for bug 6728126. |
Powered by vBulletin Version 3.5.4 Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
|  |