From: Prabhakara_Janardhan at emc.com (Prabhakara_Janardhan at emc.com) Date: Wed, 22 Apr 2009 11:36:36 -0400 Subject: [Pljava-dev] installing and configuring pljava on XP ??? In-Reply-To: <167781.80651.qm@web59811.mail.ac4.yahoo.com> References: <167781.80651.qm@web59811.mail.ac4.yahoo.com> Message-ID: <6ECF8F2E89FB354F9D3E26F7A398842B01022485@CORPUSMX100A.corp.emc.com> The module not found is because some dependency (which is usually jmv.dll) is not resolved. The Windows installer has an option of installing PL/Java. If you didn't install PL/Java while installing PostgreSQL (which was the case for me), then the only sure shot way of getting this to work for me was to get the pljava.dll,pljava.jar, install.sql and uninstall.sql from another install (*with* PL/Java) - or you can download the binaries alone from the project site - if you don't want to build PL/Java on Windows. Also make sure that all the dependencies for pljava.dll are resolved (and hence it can be loaded by the postgres backend) (use a tool such as depends: http://www.dependencywalker.com/ ). Note: pljava.dll depends on jmv.dll from the JRE installation... To satisfy the dependency, I had to manually add an entry to the system wide PATH variable in the registry to point to the libjava.dll : sub updateWindowsPathVariable(){ #print "Current Path Variable: $PATH \n\n"; my $CHANGED = 0; my $PATH = getRegVal("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Sessi on Manager\\Environment","PATH"); $PATH=~s/\\$//; # strip off the trailing backslash if it exists if($PATH !~ m/.*\\jre\\bin\\server/){ $PATH="$JAVA_HOME\\jre\\bin\\server;".$PATH; setRegVal("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Sessi on Manager\\Environment","PATH","REG_EXPAND_SZ",$PATH); $CHANGED = 1; } if($PATH !~ m/.*\\db\\controldb\\bin/){ $PATH="$########\\db\\controldb\\bin;$#######\\db\\controldb\\lib;".$PAT H; setRegVal("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Sessi on Manager\\Environment","PATH","REG_EXPAND_SZ",$PATH); $CHANGED = 1; } if($CHANGED == 1){ my $NEWPATH=getRegVal("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Contr ol\\Session Manager\\Environment","PATH"); $ENV{"PATH"}=$NEWPATH; #print "New Path Variable: $NEWPATH \n\n" } } sub setRegVal(){ my $REGISTRY_KEY="$_[0]"; my $KEY_NAME="$_[1]"; my $KEY_TYPE="$_[2]"; my $KEY_VALUE="$_[3]"; system("reg add \"$REGISTRY_KEY\" /v \"$KEY_NAME\" /t \"$KEY_TYPE\" /d \"$KEY_VALUE\" /f >NUL") == 0 or die "Cannot update reg entry: $REGISTRY_KEY\\$KEY_NAME\n"; } sub getRegVal{ my $REGISTRY_KEY="$_[0]"; my $KEY_NAME="$_[1]"; my $KEY_VALUE; open(REGQUERY,"reg query \"$REGISTRY_KEY\" /v \"$KEY_NAME\" 2>&1 |") or die "Cannot open reg query\n"; while (){ if(/$KEY_NAME/){ s/REG_SZ//g; s/$KEY_NAME//g; s/\t//g; s/ //g; $KEY_VALUE=$_; } } close(REGQUERY); chomp($KEY_VALUE); $KEY_VALUE; } Finally, I had to add the section in postgresql.conf for PL/Java (I had to script all this up). Is this painless? I reckon not... But it works for me. -Janardhan Prabhakara -----Original Message----- From: pljava-dev-bounces at pgfoundry.org [mailto:pljava-dev-bounces at pgfoundry.org] On Behalf Of Smith Roman Sent: Wednesday, April 22, 2009 2:27 AM To: pljava-dev at pgfoundry.org Subject: [Pljava-dev] installing and configuring pljava on XP ??? Hi, I am new to PL/Java. I have spent days trying to configure pljava with postgresql on my xp machine. I have read several guidelines or instructions on the web but to no avail. I keep getting a C:/Program Files/PostgreSQL/8.3/lib/pljava.dll or pljava module not found. It seems that several programmers are having this issue. Is'nt there a sure way of getting it to work painlessly. I would really appreciate it if I can get help on this issue. Thanks, Smith. _______________________________________________ Pljava-dev mailing list Pljava-dev at pgfoundry.org http://pgfoundry.org/mailman/listinfo/pljava-dev