ADempiere on a terminalserver

From ADempiere
Revision as of 10:47, 10 May 2012 by Tbayen (Talk) (what I learned about multi-user-systems)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.

I use my ADempiere installation on a LTSP Terminalserver System. I found some small problems that I want to document here. The main differences for this system are:

  • remote X Server
  • real multi-user system
  • bigger site with many printers etc.


very slow screen-refresh

This problem results from the remote access to the X-Server.

When a window has to be "greyed-out" it lasts many seconds. This happens for example when the ADempiere Swing client opens a small dialog window. This is a bug in Java I know of for years. I suspect that it is because the Java runtime can not write direct into the graphics memory and has to use a slower X protocol way to paint the greyed area. So it paints every pixel for it's own.

At the moment I have no workaround for this bug. It's a bit annoying but not a show-stopper. Some years ago I had a similar problem in an self-written swing program. It helped to deactivate the greying code. Perhaps someone wants to detect a remote X server and deactivate the greying (It's just eye-candy).


temporary files have no unique names

This problem results from more than one unix user using the same system. The using does not have to be at the same time so this can also happen on non-LTSP systems.

While working with JasperReports (see my own [JasperReports] page) I realized that some compiled Report-Files and a file called "CompiereJasperReqs.jar" are cached in files in the "/tmp" Directory. At the first sight this is no fault. But these files have unique names depending on the Report name (no temporary names) and so all users use the same path. Because these files are cached versions of the report templates this would be no problem. All users need the exactly same file. But these files are written with the default umask. So they are private to the first user that created them.

My workaround is to start ADempiere with the following command:

 bash -c "umask 0000; javaws http://adempiere.bayen.loc:8080/admin/adempiere.jnlp"

With this command all files that are created by ADempiere are world readable by all users. (Think for a second if this is what you want!). A second way could be to use a group for the tmp Directory and use the setgid flag (but think about this too). The best solution would be to correct the Jasper Code in ADempiere. It could create temporary filenames or it could use subdirectories for every user.

IF someone wants to rewrite the JasperReports code please contact me (User:Tbayen). There are more issues inside...