Thread: Problems Compiling eRserver

Problems Compiling eRserver

From
Matthew Montgomery
Date:
I'm trying to build erserver_v1.2 on a SuSE 8.2 server.

I've got Sun's j2sdk1.4.2_02 and the following env variables set:

LESSKEY=/etc/lesskey.bin
INFODIR=/usr/local/info:/usr/share/info:/usr/info
MANPATH=/usr/share/man:/usr/local/man:/usr/X11R6/man:/opt/gnome2/man:/opt/gnome/man
HOSTNAME=linux
XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
HOST=linux
SHELL=/bin/bash
TERM=xterm
PROFILEREAD=true
HISTSIZE=1000
OLDPWD=/root
JRE_HOME=/usr/java/j2sdk1.4.2_02/jre
USER=root

LS_COLORS=no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31:ex=00;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*
.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;31:*.rpm=00;31:*.deb=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z
oo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.bmp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;
35:*.jpeg=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;3
5:*.xpm=01;35:*.dl=01;35:*.gl=01;35:*.aiff=00;32:*.au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32:
POSTGRES_INCLUDE=/usr/include/pgsql/
XNLSPATH=/usr/X11R6/lib/X11/nls
HOSTTYPE=i386
PAGER=less
MINICOM=-c on

PATH=/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome2/bin:/opt/gnome/bin:/opt/kde3/bin
:/usr/java/j2sdk1.4.2_02/bin/
CPU=i686
JAVA_BINDIR=/usr/java/j2sdk1.4.2_02/bin/
INPUTRC=/etc/inputrc
PWD=/root/erserver_v1.2
JAVA_HOME=/usr/java/j2sdk1.4.2_02
TEXINPUTS=:/root/.TeX:/usr/share/doc/.TeX:/usr/doc/.TeX
SHLVL=1
HOME=/root
LESS_ADVANCED_PREPROCESSOR=no
OSTYPE=linux
no_proxy=localhost
RC_LC_COLLATE=POSIX
LESS=-M -I
MACHTYPE=i686-suse-linux
LOGNAME=root
RC_LANG=en_US
LC_CTYPE=en_US
LESSOPEN=lessopen.sh %s
INFOPATH=/usr/local/info:/usr/share/info:/usr/info
POSTGRES_LIB=/usr/lib/
LESSCLOSE=lessclose.sh %s %s
JAVA_ROOT=/usr/java/j2sdk1.4.2_02
COLORTERM=1

I have the following postgresql RPM packages installed:

postgresql-jdbc-7.3-20
postgresql-libs-7.3.2-24
postgresql-python-7.3.2-24
postgresql-server-7.3.2-24
postgresql-7.3.2-24
postgresql-docs-7.3.2-24
postgresql-devel-7.3.2-24
postgresql-test-7.3.2-24

My configure line is:

./configure --with-pgincludes=/usr/include/pgsql/ # (this location is
provided by the postgresql-devel RPM)

Here's the 'make' results. (trimmed down a bit to get just the pertinent
stuff.

# make
cd java; /bin/sh ./build.sh create; cd ..

WhoisJ Build System
-------------------
REPLIC_HOME is .
Saving CLASSPATH:

New CLASSPATH is:
lib/jdbc7.0-1.2.jar:lib/log4j.jar:lib/xerces.jar
New ANT_HOME is ./tools
Ant version 1.3alpha compiled on December 30 2000

Buildfile: build.xml
Detected Java Version: 1.3
Detected OS: Linux
Project base dir set to: /root/erserver_v1.2/java
Build sequence for target `create' is [setup-properties, prepare,
prepare-lib, compile, jars, create]
Complete build sequence is [setup-properties, prepare, prepare-lib,
compile, jars, create, usage, help, clean-car, clean, car]

setup-properties:
 [property] Override ignored for dist.dir

prepare:

prepare-lib:

compile:
    [javac] com/postgres/util/cmd/ArgCmd.java added as
/root/erserver_v1.2/java/build/classes/com/postgres/util/cmd/ArgCmd.class doesn't exist.
    [javac] com/postgres/util/cmd/GenericCmd.java added as
/root/erserver_v1.2/java/build/classes/com/postgres/util/cmd/GenericCmd.class doesn't exist.    [javac]
com/postgres/util/cmd/CmdLine.javaadded as /root/erserver_v1.2/java/build/classes/com/postgres/util/cmd/CmdLine.class
doesn'texist. 
.
.
.
 [javac] Compiling 61 source files to
/root/erserver_v1.2/java/build/classes
    [javac] Using modern compiler
    [javac] Compilation args: -d /root/erserver_v1.2/java/build/classes
-classpath

/root/erserver_v1.2/java/build/classes:/root/erserver_v1.2/java/tools/lib/ant.jar:/root/erserver_v1.2/java/tools/lib/optional.jar:/root/erserver_v1.2/java/tools/lib/stylebook-1.0-b2.jar:/root/erserver_v1.2/java/tools/lib/xalan_1_2_D02.jar:/root/erserver_v1.2/java/lib/jdbc7.0-1.2.jar:/root/erserver_v1.2/java/lib/log4j.jar:/root/erserver_v1.2/java/lib/xerces.jar:/usr/java/j2sdk1.4.2_02/lib/tools.jar:/root/erserver_v1.2/java/src:/root/erserver_v1.2/java/build/lib/jdbc7.0-1.2.jar:/root/erserver_v1.2/java/build/lib/log4j.jar
-sourcepath/root/erserver_v1.2/java/src -g 
    [javac] Files to be compiled:
    /root/erserver_v1.2/java/src/com/postgres/util/cmd/ArgCmd.java
    /root/erserver_v1.2/java/src/com/postgres/util/cmd/GenericCmd.java
    /root/erserver_v1.2/java/src/com/postgres/util/cmd/CmdLine.java
.
.
.
 [javac] An exception has occurred in the compiler (1.4.2_02). Please
file a bug at the Java Developer Connection
(http://java.sun.com/cgi-bin/bugreport.cgi)  after checking the Bug
Parade for duplicates. Include your program and the following diagnostic
in your report.  Thank you.
    [javac] java.lang.InternalError: jzentry == 0,
    [javac]  jzfile = 135350096,
    [javac]  total = 556,
    [javac]  name = /root/erserver_v1.2/java/lib/xerces.jar,
    [javac]  i = 1,
    [javac]  message = invalid LOC header (bad signature)
    [javac]     at java.util.zip.ZipFile$2.nextElement(ZipFile.java:321)
    [javac]     at
com.sun.tools.javac.v8.code.ClassReader.openArchive(ClassReader.java:975)
    [javac]     at
com.sun.tools.javac.v8.code.ClassReader.list(ClassReader.java:1218)
    [javac]     at
com.sun.tools.javac.v8.code.ClassReader.listAll(ClassReader.java:1339)
    [javac]     at
com.sun.tools.javac.v8.code.ClassReader.fillIn(ClassReader.java:1361)
    [javac]     at
com.sun.tools.javac.v8.code.ClassReader.complete(ClassReader.java:1052)
    [javac]     at
com.sun.tools.javac.v8.code.Symbol.complete(Symbol.java:372)
    [javac]     at
com.sun.tools.javac.v8.comp.Enter.visitTopLevel(Enter.java:467)
    [javac]     at
com.sun.tools.javac.v8.tree.Tree$TopLevel.accept(Tree.java:390)
    [javac]     at
com.sun.tools.javac.v8.comp.Enter.classEnter(Enter.java:442)
    [javac]     at
com.sun.tools.javac.v8.comp.Enter.classEnter(Enter.java:456)
    [javac]     at
com.sun.tools.javac.v8.comp.Enter.complete(Enter.java:596)
    [javac]     at
com.sun.tools.javac.v8.comp.Enter.main(Enter.java:582)
    [javac]     at
com.sun.tools.javac.v8.JavaCompiler.compile(JavaCompiler.java:331)
    [javac]     at com.sun.tools.javac.v8.Main.compile(Main.java:569)
    [javac]     at com.sun.tools.javac.Main.compile(Main.java:36)
    [javac]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
    [javac]     at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    [javac]     at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    [javac]     at java.lang.reflect.Method.invoke(Method.java:324)
    [javac]     at
org.apache.tools.ant.taskdefs.Javac.doModernCompile(Javac.java)
    [javac]     at
org.apache.tools.ant.taskdefs.Javac.execute(Javac.java)
    [javac]     at org.apache.tools.ant.Target.execute(Target.java)
    [javac]     at org.apache.tools.ant.Project.runTarget(Project.java)
    [javac]     at
org.apache.tools.ant.Project.executeTarget(Project.java)
    [javac]     at
org.apache.tools.ant.Project.executeTargets(Project.java)
    [javac]     at org.apache.tools.ant.Main.runBuild(Main.java)
    [javac]     at org.apache.tools.ant.Main.main(Main.java)

BUILD FAILED

/root/erserver_v1.2/java/build.xml:146: Compile failed, messages should
have been provided.
.
.
.

Am I missing something?

I believe I have all the pre-reqs fulfilled per the docs.

Any help is appreciated

Thank You,

Matthew Montgomery


Re: Problems Compiling eRserver

From
Andrew Sullivan
Date:
On Fri, Nov 07, 2003 at 02:44:54PM -0600, Matthew Montgomery wrote:
> My configure line is:
>
> ./configure --with-pgincludes=/usr/include/pgsql/ # (this location is
> provided by the postgresql-devel RPM)

Are you sure that's the right one?  You actually need to be pointing
to spi.h, IIRC.  But that's not your problem.

>     [javac]  jzfile = 135350096,
>     [javac]  total = 556,
>     [javac]  name = /root/erserver_v1.2/java/lib/xerces.jar,

The problem is you have a corrupt xerces.jar file.  Check the current
CVS head out instead of using the one you have.

BTW, there's a list just for erserver.  You'll probably get better
help there.  I suggest noodling around the erserver site, because the
archive has an explanation of this.

A


--
----
Andrew Sullivan                         204-4141 Yonge Street
Afilias Canada                        Toronto, Ontario Canada
<andrew@libertyrms.info>                              M2P 2A8
                                         +1 416 646 3304 x110


eRserver

From
Renney Thomas
Date:
I would like to hear about any issues related to erserver. I was a
little concerned about its use of Java.  Java is a great tool for
creating application frameworks for the payroll department, but using it
for back-end system-level application programming is a bit unnerving.
Java is generally slow, memory and CPU intensive and doesn't provide for
tight integration like C/C++ applications.

Thanks


Re: eRserver (slightly offtopic)

From
Grega Bremec
Date:
...and on Fri, Nov 28, 2003 at 03:27:56PM -0500, Renney Thomas used the keyboard:
>
> I would like to hear about any issues related to erserver. I was a
> little concerned about its use of Java.  Java is a great tool for
> creating application frameworks for the payroll department, but using it
> for back-end system-level application programming is a bit unnerving.
> Java is generally slow, memory and CPU intensive and doesn't provide for
> tight integration like C/C++ applications.
>
> Thanks

Just a comment on Java, not quite related to your post, Renney. It is by
no means intended as a flamebait, I would just like to remind you all that
the times when Java was a memory and cpu hog are generally almost over.
I see this kind of attitude on a daily basis, and it almost kind of makes
me sad, because the illusion that people accepting such a stance regarding
ANY tool have put upon themselves is really hurting themselves in the end,
as it's usually related to anecdotal and outdated evidence, but most of all,
heresy and lack of real proof (not of slowness in this case, hehe, ANYONE
can write a bad program :)).

The fact you need a 20-30% faster cpu to have Java apps working as smoothly
as they would if one used a C application (and i won't even _attempt_ to
mention C++ here, because it is, in my not-so-humble opinion, far worse than
Java), is contrasted by the massive cut in development time, manpower needed
to do the job and the number of bugs produced during the development period.
Double free() crash due to a missing #ifdef? Eeew. Sorry for you, lad.

As with all development tools, this is mainly a "the right tool for the
right job" issue, no doubt, and I sure as hell wouldn't want to write a
realtime application in Java, but the man doing it has no less to do with
it than the job itself. A good programmer can compensate for the loss in
execution time in far less than the time they'd have used for debugging a
tool developed in C.

There are many performance and optimization documents and books for Java,
but it is not a "tweak" that will make your Java program work fast. You need
to be capable of performing a bit more profound "pirouette" in your mind.
Java programming is quite unlike any C/C++ programming. Sure, you can write
Java programs the way you'd do it in C, but that's never going to get you
far, performance-wise. A Java Virtual Machine is such an advanced beast
that you really need to get to know it better before you can talk about its
"general slowness", and write it off for its "memory and CPU intensiveness"
alone.

There are many design-pattern-level books that make it possible for one to
realize where the true power of both the Java VM and Java as a programming
language is though, and develop fast, scalable and reliable applications in
Java as well. One amongst those definitely worth mentioning would surely be
Doug Lea's "Concurrent programming in Java - Design principles and patterns",
and it coming from the insiders themselves, I can assure you that it really
is worth a look.

One has to decide one's interested and truely wants to find something useful
in a tool though, before one can see its true value.

Hope this helped.
--
    Grega Bremec
    System Administration & Development Support
    grega.bremec-at-noviforum.si
    http://najdi.si/
    http://www.noviforum.si/

Attachment

Re: eRserver

From
James Cooper
Date:
I can't comment on exactly how eRserver benchmarks. But your comments on
Java are sadly misplaced, maybe '95 esque. You'll find that allot of the
misconceptions around java as a language stem from crtique with in roots
from the frist widely accessible virtual machine  1.0.2. Many of the so
called performance issues have long since been resolved which is quite
miraculous for a language a little over 8 years old.

You'll also be pleased to find that many different virtual machine
perform very differently to the free sun hotspot virtual machine, some
such as TowerJ allow for enhanced compile to platform capabitilities
though of course you loose platform independence. But thats not an issue
for everyone.

I could list the urban myths perpetuated about Java's performance, but
as this is not a Java developers list I think its out of place.

As for using eRserver, we decided against it and for clients that
require clustered highly available datagroups, we recommend oracle. I
would not say it was its performance or reliability per se, but rather
support, tools that lacked for someone who had different needs to our
regular uses who are quite happy with Postgre.


Renney Thomas wrote:

> I would like to hear about any issues related to erserver. I was a
> little concerned about its use of Java.  Java is a great tool for
> creating application frameworks for the payroll department, but using
> it for back-end system-level application programming is a bit
> unnerving. Java is generally slow, memory and CPU intensive and
> doesn't provide for tight integration like C/C++ applications.
> Thanks
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
>      subscribe-nomail command to majordomo@postgresql.org so that your
>      message can get through to the mailing list cleanly
>

--
James Cooper
Software Engineer, Wificom Technologies Ltd Uudenmaankatu 23
A                Tel. +358 9 5627 4600
00120 Helsinki, Finland                Fax. +358 9 5627 4601



Re: eRserver

From
Christopher Browne
Date:
renneyt@yahoo.com (Renney Thomas) writes:
> I would like to hear about any issues related to erserver. I was a
> little concerned about its use of Java.  Java is a great tool for
> creating application frameworks for the payroll department, but using
> it for back-end system-level application programming is a bit
> unnerving. Java is generally slow, memory and CPU intensive and
> doesn't provide for tight integration like C/C++ applications.

There are things about Java that cause me concern, but I would dispute
this being the total story.

The thing about database-based applications is that they wind up
hitting the _database_ pretty hard.  And when the bulk of the work is
database queries, where it's _PostgreSQL_ doing the work, it's not
Java that is likely to be the bottleneck.

Replication is certainly no exception to this.  The bulk of
replication work takes place in the database.  In extreme cases, there
_may_ be Java-based bottlenecks to be found, but that doesn't seem to
be the typical case.

In addition, I think you're looking at Java as how it was 4 years ago.
Sun has relearned some of the things about garbage collection learned
15 years earlier in the Lisp community.  They have built larger sets
of compiled-to-machine-language libraries akin to LIBC, so that
increasing portions of "system calls" are run as plenty fast compiled
code.  And JIT means that raw Java isn't as slow as it used to be.
--
let name="cbbrowne" and tld="libertyrms.info" in String.concat "@" [name;tld];;
<http://dev6.int.libertyrms.com/>
Christopher Browne
(416) 646 3304 x124 (land)

Re: eRserver

From
Andrew Rawnsley
Date:
On Dec 1, 2003, at 2:34 PM, Christopher Browne wrote:

> renneyt@yahoo.com (Renney Thomas) writes:
>> I would like to hear about any issues related to erserver. I was a
>> little concerned about its use of Java.  Java is a great tool for
>> creating application frameworks for the payroll department, but using
>> it for back-end system-level application programming is a bit
>> unnerving. Java is generally slow, memory and CPU intensive and
>> doesn't provide for tight integration like C/C++ applications.
>
> There are things about Java that cause me concern, but I would dispute
> this being the total story.
>
> The thing about database-based applications is that they wind up
> hitting the _database_ pretty hard.  And when the bulk of the work is
> database queries, where it's _PostgreSQL_ doing the work, it's not
> Java that is likely to be the bottleneck.
>
> Replication is certainly no exception to this.  The bulk of
> replication work takes place in the database.  In extreme cases, there
> _may_ be Java-based bottlenecks to be found, but that doesn't seem to
> be the typical case.
>

There are some design problems in the erserver code that do cause some
bottlenecks -
see Andrew Sullivan's description of show-stoppers from a month or two
ago. This is more
of a design issue than a java-centric issue, however.

> In addition, I think you're looking at Java as how it was 4 years ago.
> Sun has relearned some of the things about garbage collection learned
> 15 years earlier in the Lisp community.  They have built larger sets
> of compiled-to-machine-language libraries akin to LIBC, so that
> increasing portions of "system calls" are run as plenty fast compiled
> code.  And JIT means that raw Java isn't as slow as it used to be.

By no means. I find it amusing the number of people who, because java
didn't
live up to their interpretation of the original hype (nothing could,
really), don't realize
how popular and entrenched it is in certain areas. No, there aren't
web-enabled word processors and
whatnot everywhere like Sun tried to make everyone believe, but its
huge in the
server/DB/web delivery world.

There are tradeoffs, of course. But such is the story of life.

As for java being a "great tool for creating application frameworks for
the payroll department", well,
my version of an "application framework for a payroll department"
manages about $90 billion in assets,
so it must be a little bit up to the task :).

> --
> let name="cbbrowne" and tld="libertyrms.info" in String.concat "@"
> [name;tld];;
> <http://dev6.int.libertyrms.com/>
> Christopher Browne
> (416) 646 3304 x124 (land)
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 7: don't forget to increase your free space map settings
>
--------------------

Andrew Rawnsley
President
The Ravensfield Digital Resource Group, Ltd.
(740) 587-0114
www.ravensfield.com