agora inbox for pljava-dev@postgresql.org  
help / color / mirror / Atom feed
Subject: [Pljava-dev] Upcoming features
Date: Mon, 05 Jul 2004 00:41:01 +0200
Message-ID: <40E8877D.60207@mailblocks.com> (raw)

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





Message-ID: <40E8877D.60207@mailblocks.com>
Permalink:  ../40E8877D.60207@mailblocks.com/
Also on:    postgresql.org/message-id/40E8877D.60207@mailblocks.com

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pljava-dev@postgresql.org
  Subject: Re: [Pljava-dev] Upcoming features
  In-Reply-To: <40E8877D.60207@mailblocks.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox