[Pljava-dev] Upcoming features

From: thhal at mailblocks(dot)com (Thomas Hallgren)
To:
Subject: [Pljava-dev] Upcoming features
Date: 2004-07-04 22:41:01
Message-ID: 40E8877D.60207@mailblocks.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pljava-dev

PostgreSQL now has feature freeze for version 7.5. This goes for Pl/Java
as well. I plan to release a version 1.1 of Pl/Java with some new
functionality. The code is in CVS already. Here are the highlights of
what I have planned.

Configuration of the JVM.
PostgreSQL now have support for custom variable classes. In essence,
this means that any PostgreSQL module can add configuration variables to
the postgresql.conf file and also use the SQL command SET to reconfigure
stuff in runtime. So far, I've added three such variables.

pljava.classpath
The classpath that will be used by the JVM. It will be merged with the
classpath defined by the CLASSPATH environment variable such that the
classes defined in the pljava.classpath will be placed first.

pljava.debug
If set, Pl/Java goes into loop where each turn sleeps for one second.
The loop can be broken by attaching a debugger (such as gdb) and set the
C variable pljavaDebug to 0. This mechanism is inteded for those who
want to debug the C code in Pl/Java or when Pl/Java is used in
conjunction with gcj (in which case gdb can be used as java debugger as
well).

pljava.vmoptions
Each option in this string is passed on to the JVM. Suitable for
controlling min/max heap, Java debugging, etc.

GCJ support.
Pl/Java can now run using GCJ (see http://gcc.gnu.org/java) Since each
connection in PostgreSQL is a process of its own and hence spawn a JVM
of its own, the use of GCJ can be a significant improvement when it
comes to resource consumption and start up times. When Pl/Java is
compiled for GCJ, the pljava.jar is no longer needed. Everything is
linked with the shared object. GCJ 3.4 is required to make everything
work OK.

GCJ has currently only been tested on Linux.

Transactional support.
A new java class, called a Session is introduced. You get hold of the
session using the static method Server.getSession(). A session can hold
attributes and the attributes are under transaction control, i.e. all
changes made to a session will remain if a transaction commits
successfully. If the transaction aborts, all changes since the last
commit will be lost.

Kind regards,

Thomas Hallgren

Browse pljava-dev by date

  From Date Subject
Next Message Thomas Hallgren 2004-07-11 21:37:07 [Pljava-dev] pljava-dev is now available as a newsgroup
Previous Message Thomas Hallgren 2004-07-01 09:32:26 [Pljava-dev] Error in install_jar-ing examples