Forum OpenACS Q&A: ns_java / ns_javablend

Collapse
Posted by Jonathan Ellis on
Is any progress being made with ns_javablend?  I've been to the
sourceforge project and it's over a year since anything got checked
in to cvs.  Similarly "tclblend with aolserver support" which is
supposedly ns_javablend:TNG hasn't seen much activity either.

I'm a little scared to go with ns_javablend b/c of the memory leaks
described on the home page.  Unfortunately plain ns_java isn't an
option because I want to get results from Java into tcl, and ns_java
requires return type of void.

I know you're out there, Dan. :)  Any advice?  ("Stay away from
TclList and you're fine," maybe?)

Also: "This module is currently limited to one tcl interpreter per
aolserver thread."  Does this mean that if interpreter A calls an
ns_javablend method, then interpreter B calls one, B blocks until A's
method finishes?

Collapse
Posted by Dan Wickstrom on
Yes, I'm here... Well at least I try to follow the bboard discussions every day.  I've been quite busy lately, and I haven't had much free time for opensource projects in general, so I haven't devoted any effort to ns_java/ns_javablend in quite a while.  Couple that with the fact that there never has been much interest in the community for ns_java, and you can see why there hasn't been any development on it in the past year.

Staying away from TclList is not a viable option, since it's used through ns_javablend at the lower levels.  The memory leaks can be quite extensive on a busy site such that you would need to restart the server frequently.  Running a production site using ns_javablend is just not a good option right now.

If I do get back to a point where I have more free time, I think I will rewrite ns_javablend so that it doesn't depend on Tclblend.  Tclblend duplicates the workings of a tcl interpreter in java, and it's quite a complicated process to keep everything lined up between the tcl and java sides of the process.  As a first step, I've created a new object model for the java objects, and I've written a tcl object-oriented extension module to test out my ideas for simplification of ns_javablend.  There is alot I want to do, but as I said, I just don't have the time.

The limitation is not really a limitation in the context of aolserver, since you normally only have one interpreter per thread anyway.  I'm not even sure that you can create a new interpreter once a thread is started when using aolserver.  The limitation is just stating that you can't do:

interp create

from within a tcl script when you're using ns_javablend.

Collapse
Posted by Jonathan Ellis on
how hard would it be to hack ns_java to allow (even require if that's easier) the static java methods to return Strings?
Collapse
Posted by Dan Wickstrom on
It would be quite easy.  Just modify NsJava_JavaEvalCmd to use CallStaticMethod instead of CallStaticVoidMethod, and then use Tcl_SetResult to return the return string from the called method.  There would also be a slight amount of work in converting from the java utf string format, and the method signature stuff would need a small change to reflect the fact that the method is expected to return a string instead of void.  All in all not much work other than looking up a few things about the java JNI interface and a basic understanding of how to return values back to the tcl interpreter.
Collapse
5: JNI sucks (response to 1)
Posted by Jonathan Ellis on
you can't have {int foo(), boolean foo()} as methods in the same class.  So why make JNI users specify the return type in the method signature, when class + method name + args is sufficient to uniquely identify it?  That sucks.  I had a look at tclBlend's workaround and you have to jump through even more hoops than I thought to reflect your way around this.  So yeah I'll do it the way you said. :(
Collapse
Posted by Jun Yamog on
Hi,

I can't really directly contribute or help since I still do not have enough skills yet.  I just would like to voice out my great interest in ns_javablend.

Tcl + Java is really a good combination.  Make use of Tcl where needed and use Java where needed.  And have both interchange data and invoke methods/procs.

Would you think using SOAP or XML-RPC is good thing for this problem?  I know it would be several times slower than ns_javablend but what if you just need to interchange data between java and tcl very few times.

Collapse
Posted by Jonathan Ellis on
why set up two servers where one will do?  unless the java code you want to call is explicitly intended to only be called that way then I'd think ns_java is the way to go.

besides returning a method from the java method, the method can also use NsTcl to create 'side effects' in the host interpreter.  So unless I'm mistaken you could do something like

NsTcl.eval("set rval " + myReturnValue);

on the java side.

Collapse
Posted by Dan Wickstrom on
Yes the eval trick will also work.  In fact, when I first developed ns_java, the first thing that I implemented was the eval command and then I used it fake a db interface to aolserver from the java side.  Eventually, I created ns_db and ns_set equivalent classes and got rid of the eval hack, but it seemed to work okay.
Collapse
Posted by Walter Smith on
This might seem like a stupid question, but can someone explain how ns_java fits into the "OACS server architecture"?  What other existing products or technologies would it be similar to, and/or what would be its strengths and weaknesses compared to other technologies?

I'm currently getting into Java myself and I'm interested in how ns_java might be used to complement and extend the existing toolkit, but it hasn't been too clear to me how it fits into the big picture.

Collapse
Posted by Jonathan Ellis on
I can tell you what I'm planning to use it for...

despite philg's pronouncements to the contrary ("there is no scalability problem"), my site reached the limit of what PG can handle on my system the very first day it was live.  Unlike traditional read-intensive sites, carnageblender is a web-based game and VERY update-intensive.  I'm upgrading the hardware but there's only so far that will take me on my budget.  So, I need to do the majority of updates to the most heavily used structures in memory and only infrequently flush to the DB.

I looked at doing this in pure tcl and the picture is hell.  tcl just does not lend itself to complex data structures; I got as far as writing a more user-friendly wrapper to ns_mutex and sketching out the data structures I'd need but the more I planned it the more of a nightmare an ns_set based caching model seemed.  java will be much, much cleaner if I can get it to work.  As a bonus, recent jvms seem to be faster than the tcl interpreter, so maybe I will see speed gains from re-coding the 1500 loc fight script in java.  Mostly though I just want java to cache objects in a way tcl is ill-suited for, and rewrite as little as possible.  I LIKE tcl. :)

Collapse
Posted by Don Baccus on
Insane numbers of updates are a known weakness with PG's non-overwriting storage manager.  This is probably its greatest weakness in comparison to Oracle.  Most websites aren't update-intensive, but the fact that Carnage Blender is doesn't come as a surprise, of course.

There may be other ways to attack this problem ... but I'm still too sick to think about it :)

Collapse
12: I must be retarded (response to 1)
Posted by Jonathan Ellis on
$ ldconfig -v
...
/usr/java/jdk1.3.1_01/jre/lib/i386: (hwcap: 0x1000000000000)
        libjava.so -> libjava.so
...

$ ldd libnsjava.so
        libdl.so.2 => /lib/libdl.so.2 (0x400c1000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x400c5000)
        libc.so.6 => /lib/libc.so.6 (0x400dc000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2aaaa000)
        libjava.so => NOT FOUND
???
Collapse
Posted by David Walker on
I gave up trying to troubleshoot a similar problem (except with postgres) and
just put a symlink in /lib and reran ldconfig
Collapse
Posted by Jonathan Ellis on
in this case, I'd need to symlink a couple dozen files from
/usr/java/jdk1.3.1_01/jre/lib/i386/
/usr/java/jdk1.3.1_01/jre/lib/i386/server/
I'd rather not if I can avoid it. I did get ldd to find everything by adding these directories to LD_LIBRARY_PATH in /etc/profile. (what is up with checking that but disregarding ldconfig?) But nsd doesn't source /etc/profile (surprise) so I'm still up a creek there. Anyone know how to specify this to nsd? :)
Collapse
Posted by Cynthia Kiser on
In response to the "how to set environment vars via nsd" question: If you are using .tcl config files, you could probably just source a file that sets the environment vars. The traditional aD was is to make a wrapper for nsd called nsd-oracle that sets up the environment (NLS_DATE_FORMAT, etc.) then calls nsd. Only hazzard is forgetting this trick and starting your server using nsd - and then spending 30 minutes trying to figure out how you broke your server.
Collapse
Posted by defunct defunct on
On the subject of Java.....
Its always been my understanding/belief that Java and TCL are (and were designed) to be complimentary.

OACS's use of TCL as the scripting language for web pages is an inspired and highly appropriate choice, and I have no problem demonstrating the 'correctness(?)' of this to clients... but.....

Java is fast becoming de-facto standard, and a wealth of tools and systems built with it are also growing...

So it'd be nice, certainly, to know that its available in the armoury. I don't know what everyone else thinks, but I'd always thought that Jacl was really the right way to go... i.e. implement TCL in Java... you then have the best of both worlds...

At my previous company we did have a short look into the idea of porting AOLServer..... in the end it was decided this was too time consuming, risky and therefore not cost effective..

But I wondered.... has anyone else looked into this?

Collapse
Posted by Dave Bauer on
Jonathan,

Have you looked at using nsv variables? I think that this is exactly what they are for.

http://www.aolserver.com/docs/devel/tcl/nsv-commands.html

Or is this what you were talking about?

Collapse
Posted by Jonathan Ellis on
yeah, that's what I meant.  sorry for the imprecision. :)
Collapse
Posted by Roberto Mello on
Simon,

You said "Java is fast becoming de-facto standard". I hear Java folks saying that all the time (in fact, so much that "de facto standard" is becoming more common a phrase than "sliced bread"). But Java folks never say what Java is becoming a standard for.

I like the idea of Jacl and ns_java. It gives you the speed and ease of use of Tcl for most things, and when it's necessary and of good measure, it lets you use Java for things where it's better suited.

Having used Jython, I can say it's very nice to have that integration.

Collapse
Posted by Dan Wickstrom on
As far as using jacl, I couldn't disagree more.  Tclblend is designed to integrate with c-code, so it's a nice fit with aolserver as an independent module.  To use jacl, you would have to reimplement aolserver in java, which would probably result in an aolserver clone that performed quite poorly, but had good integration support for java.  It would be a huge task that wouldn't be worth the effort.  Removing the memory leaks from tclblend would be a much easier task by comparison, and the use of ns_javablend would allow you to easily integrate java and tcl within aolserver.
Collapse
Posted by Jonathan Ellis on
I took Cynthia's advice and made libnsjava happy with a wrapper script
#!/bin/sh

export LD_LIBRARY_PATH=/usr/java/jdk1.3.1_01/jre/lib/i386/:/usr/java/jdk1.3.1_01/jre/lib/i386/server/

exec /home/aolserver/bin/nsd $*
Collapse
Posted by Roberto Mello on
Ah, thanks for pointing out the difference Dan. I was unaware of those intrycacies.

/me shouts his mouth before saying something else he's not entirely sure about :)

Collapse
Posted by Jonathan Ellis on
more fun: libnsjava.so is loading fine now, as long as I don't try to enable it. :)  as soon as I enable it, I get

[15/Mar/2002:10:14:36][23446.1024][-main-] Notice: ModuleInit: Java Module ENABLED

then,

[15/Mar/2002:10:14:36][23453.1024][-main-] Notice: nsmain: AOLserver/3.3.1+ad13 starting

this is an unmodified nsjava 0.10, I haven't done anything fancy yet.  I've tried adding the libnsjava.so to my LD_LIBRARY_PATH but that didn't seem to be the problem.  I also tried it with VerboseJvm on; that didn't provide any more info.

Collapse
Posted by Dan Wickstrom on
I don't see any error messages. Are you saying that it just hangs? If so, you probably have lib compatiblity problem. Try this:

80 danw@castor:/usr/local/jdk/jdk1.1.8/lib/sparc/native_threads>ldd libjava.so
        libthread.so.1 =>        /usr/lib/libthread.so.1
        libdl.so.1 =>    /usr/lib/libdl.so.1
        libsocket.so.1 =>        /usr/lib/libsocket.so.1
        libnsl.so.1 =>   /usr/lib/libnsl.so.1
        libc.so.1 =>     /usr/lib/libc.so.1
        libmp.so.2 =>    /usr/lib/libmp.so.2
81 danw@castor:/usr/local/jdk/jdk1.1.8/lib/sparc/native_threads>cd /usr/local/aolserver/bin
82 danw@castor:/usr/local/aolserver/bin>ldd nsd
        libsocket.so.1 =>        /usr/lib/libsocket.so.1
        libnsl.so.1 =>   /usr/lib/libnsl.so.1
        libdl.so.1 =>    /usr/lib/libdl.so.1
        librt.so.1 =>    /usr/lib/librt.so.1
        libpthread.so.1 =>       /usr/lib/libpthread.so.1
        libresolv.so.2 =>        /usr/lib/libresolv.so.2
        libm.so.1 =>     /usr/lib/libm.so.1
        libc.so.1 =>     /usr/lib/libc.so.1
        libmp.so.2 =>    /usr/lib/libmp.so.2
        libaio.so.1 =>   /usr/lib/libaio.so.1
        libthread.so.1 =>        /usr/lib/libthread.so.1
83 danw@castor:/usr/local/aolserver/bin>ldd libnsjava.so 
        libsocket.so.1 =>        /usr/lib/libsocket.so.1
        libnsl.so.1 =>   /usr/lib/libnsl.so.1
        libdl.so.1 =>    /usr/lib/libdl.so.1
        librt.so.1 =>    /usr/lib/librt.so.1
        libpthread.so.1 =>       /usr/lib/libpthread.so.1
        libresolv.so.2 =>        /usr/lib/libresolv.so.2
        libthread.so.1 =>        /usr/lib/libthread.so.1
        libjava.so =>    /usr/local/jdk/jdk1.1.8/lib/sparc/native_threads/libjava.so
        libc.so.1 =>     /usr/lib/libc.so.1
        libmp.so.2 =>    /usr/lib/libmp.so.2
        libaio.so.1 =>   /usr/lib/libaio.so.1


and check to see, if your thread library versions match up. What jdk, platform, os, etc. are you using? This lib compat problem is huge problem, and I think the fact that java is closed source really blows. I wish Sun would opensource java. C# is going to eventually replace java anyway, so what does Sun have to lose?
Collapse
Posted by Jonathan Ellis on
jdk 1.3.1 (linux/x86)
mandrake 8.0

all three libraries depend on

libpthread.so.0 => /lib/libpthread.so.0

and yeah, it just dies (so init respawns nsd, hence the "starting" line)

Collapse
Posted by Jonathan Ellis on
I turned debug on globally and got a couple more lines of info before it dies
[15/Mar/2002:10:55:05][23933.1024][-main-] Debug: InitializeNsJavaEnv: Initializing nsjava environment
[15/Mar/2002:10:55:05][23933.1024][-main-] Debug: ModuleInit: starting -jvm- thread
[15/Mar/2002:10:55:05][23933.3076][-jvm-] Debug: StartJvm: 0 JVMs in proc. make one.
Collapse
Posted by Dan Wickstrom on
I've never tested with jdk version 1.3, so that might be your problem.  It seems to be dying in the getVmArgs routine, and its possible that the jdk 1.3 args are incompatible with the 1.2 args.  For linux, all I've ever been able to successfully test with is jdk1.1.8 from blackdown, and this was done on redhat 6.2.
Collapse
Posted by Jonathan Ellis on
yeah, I added some more modlog statements and it's dying in NsJava_SetJdk1_x_Options.
Collapse
Posted by Jonathan Ellis on
in fact it's dying in the first line.
  Ns_ModLog(Debug, javaModLogHandle, "jdk options 0");
  moduleConfigPath = Ns_ConfigGetPath(Ns_ConnServer(NULL), "nsjava", NULL);
  Ns_ModLog(Debug, javaModLogHandle, "jdk options 0.1");
the second log message never arrives.
Collapse
Posted by Dan Wickstrom on
Strange, that section of code has nothing to do with initializing the jvm.  At least I don't see why it would freeze there unless, this is some type of threading issue.  I would try another jdk.
Collapse
Posted by Jonathan Ellis on
I don't think it likes that Ns_ConnServer(NULL) call.  I made moduleConfigPath static and let the initialization in Ns_ModuleInit take care of it for everyone.  Now getVmArgs returns... and it dies after logging "init jcache."  Maybe I'll have to downgrade the jvm but I'm only lines away from loading now! :)
Collapse
32: JVM loaded! (response to 1)
Posted by Jonathan Ellis on
yeah, it really doesn't like that... buried in the mounds of output it dumped was
<pre>
An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : 11 occurred at PC=0x80661df
Function name=Ns_ConnServer
</pre>

and sure enough there was another Ns_ConnServer(NULL) call.  I'd missed it cuz the variable wasn't named moduleConfigPath like all the others. :)

Hopefully I won't be posting again for a bit.  (Want the diff?)

Collapse
Posted by Jonathan Ellis on
every time my tcl code calls "exec" with ns_java enabled I get this error:

error waiting for process to exit: child process lost (is SIGCHLD ignored or trapped?)

Collapse
Posted by Dan Wickstrom on
I'm not sure, but the reason a separate thread is started for spawning the jvm is due to the fact that aolserver blocks some signals that are needed by the jvm.  IIRC sigusr2 is used by some jvms to run the garbage collector, and aolserver was blocking it in the main thread, so the GC wouldn't run.  I know ns_java doesn't explicitly block any signals, so I'm not sure why sigchld wouldn't be working normally.

Yes, send me the patch.

Collapse
Posted by Michael Feldstein on

Dan wrote:

As far as using jacl, I couldn't disagree more. Tclblend is designed to integrate with c-code, so it's a nice fit with aolserver as an independent module. To use jacl, you would have to reimplement aolserver in java, which would probably result in an aolserver clone that performed quite poorly, but had good integration support for java. It would be a huge task that wouldn't be worth the effort. Removing the memory leaks from tclblend would be a much easier task by comparison, and the use of ns_javablend would allow you to easily integrate java and tcl within aolserver.

I have nothing to say on the technical merits, of course, but I do worry about the future for AOLServer. I worry about the fact that 90% of the developer resources for AOLServer come from AOL, whose needs are often orthogonal to those of the OpenACS community.

I have floated these concerns privately to a few community members, and the answer I always get back is, "AOLServer is still better than pretty much anything else out there. Apache might be good someday, but it's not there yet." Etc. I understand this argument, because it's an awful lot like the one I gave my friends about why I was sticking with my Mac circa 1996.

I wouldn't be surprised if Apache and/or others (possibly including some Java-based competitors) close the gap on AOLServer on issues of performance and stability in the next year (or two). Once they have done so, their rather large developer base can start focusing more energy on features -- on making web servers do new and interesting things. When that happens, will the AOL bother to implement these new features? Will they need them? If not, will the OpenACS community be able to keep up? Is there any point in trying?

My suspicion is that, just as Apple found itself with nothing competitive about its OS other than it's (user) interface, AOLServer will someday (sooner than you think) find itself in a position where the only thing competitive about it is the (tcl/db) interface. If and when that day comes, we will have to do what Apple did, i.e., rip out the guts and start over, keeping mainly a lot of the interface stuff plus as much backward compatibility as they could swing without killing their effort to move forward. (Please, no flames about the OS X UI.)

If I'm right about this, then the community will probably have to make the things you like about AOLServer portable to another web server sooner or later. Inevitably, the first implementation will be a huge resource drain and have poor performance relative to the real thing. This is all the more reason to start now.

To see if I'm right, the question you have to ask is simple: Is AOLServer evolving as quickly as the competition? If it is, then no worries. If it's not, then no matter how far ahead it may be now, it is inevitable that it will be surpassed, at which point the huge investment of resources in OpenACS will start to lose value. How fast the competition catches up --and how fast it speeds ahead once it has caught up-- is simply a function of how far behind the competition is and how quickly they are catching up. Once you figure that out, then figure out how long it would take to polish an implementation of the API on another platform (mod_AOLServer, AOLServer J2EE, AOLServer.NET...whatever). If the latter timeline gets a lot longer than the former one, then the community has some serious problems.

All this is to say that perhaps Dan's specific objections to Jacl --as accurate as I'm sure they are-- may not be as compelling if one takes a longer view.

Collapse
Posted by Jonathan Ellis on
mac OSX aside, the most common answer to "if you can't beat 'em?" is "join 'em", not "rewrite your codebase in java."  Especially since mod_aolserver and ns_isapi are already out there.
Collapse
Posted by Patrick Giagnocavo on
Sounds like you need the tcl exec patch loaded - could that be the case?
Collapse
Posted by Walter Smith on
Michael has much more articulately raised the issues I was inquiring about in my earlier post.  I'm very interested in the forward-looking vision and competitive strategy.  If nothing else, it certainly helps in answering questions and challenges from prospective clients.
Collapse
Posted by Michael Feldstein on

mac OSX aside, the most common answer to "if you can't beat 'em?" is "join 'em", not "rewrite your codebase in java." Especially since mod_aolserver and ns_isapi are already out there.

I'm definitely not the guy to figure out which re-implementation makes the most sense. Sure, making mod_AOLServer perform acceptibly seems like a much easier way to go than Jacl. My point is that nobody is working on any of these options right now, AFAICT.

Collapse
40: tcl exec patch? (response to 1)
Posted by Jonathan Ellis on
exec works great and always has except when I enabled ns_java.  what's this patch do (and where is it)?
Collapse
Posted by Dan Wickstrom on
I think the exec patch is only necessary for bsd machines.
Collapse
42: ns_java Error (response to 1)
Posted by Andrew Smith on
Hi,

   I am trying to make use of webmail package of openacs 3.2.4.
I am using Redhat Linux 7.1 with Postgres Sql 7.1.3 and AOL3.2

   I have followed most the instructions on webmail installation that
I could find.

   I have downloaded and installed nsjava from sourceforge. 

The bin dir of my aolserver now contains 

libnsjava.so,nsjava.jar,activation.jar,mail.jar,mailapi.jar,imap.jar

The classpath in the server.tcl file contains

 ns_param   ClassPath "/usr/local/jdk/jdk118_v3/lib/classes.zip:/usr/local/aol32/bin/nsjava.jar:/usr/local/aol32/bin/activation.jar:/usr/local/aol32/bin/mail.jar:/web/server/www/webmail/java"

And The modules 

ns_section "ns/server/${server}/modules"
        ns_param   nssock          ${bindir}/nssock.so
        ns_param   nslog           ${bindir}/nslog.so
        ns_param   nsperm          ${bindir}/nsperm.so 
#       ns_param   nscgi           ${bindir}/nscgi.so 
        ns_param   nsjava          ${bindir}/libnsjava.so


I have compiled the java files under /web/server/www/webmail/java directory with no errors.

But still when I try to send a mail on page message-send-3.tcl . I get the error 

"
Database Error
An error occured while we attempted to compose your message: 

                invalid command name "nsjava"

webmaster@yourdomain.com
"

Any help would be greatly appreciated Thanks in advance
Collapse
43: nsjava error (response to 1)
Posted by Andrew Smith on

On message-send-3.tcl page I used 

ns_java MessageComposer::compose_message $outgoing_msg_id $tmpfile

but still it gave me same error

I then tried using 

exec java MessageComposer::compose_message $outgoing_msg_id $tmpfile

It gave me different error

"
Database Error

An error occured while we attempted to compose your message: 

       Can't find class MessageComposer::compose_message
        
webmaster@yourdomain.com

"

I then modified it to 


exec java MessageComposer $outgoing_msg_id $tmpfile


Then it gave me different error

"
Database Error

An error occured while we attempted to compose your message: 

 In class MessageComposer: void main(String argv[]) is not defined

webmaster@yourdomain.com

"


Any help would be appreciated
Thanks
Collapse
Posted by Jonathan Ellis on
"exec java" tries to run the class just as it would be run if you did "java ..." from the commandline.  so you are getting the same error messages you'd get from the commandline; it inherits nothing from AOLserver.

ns_java is the way you want to do it; to load it, you need to have libnsjava.so in your bin directory and then in the modules section (where nssock is, and the other standard ones) add a line

        ns_param  nsjava          ${bindir}/libnsjava.so

Collapse
Posted by Jonathan Ellis on
whoops, missed where you said you'd already added libnsjava to modules.  do you have

ns_param EnableJava on

in the nsjava section?  (same place your classpath is declared.)  if so you should have a line in the log when you restart like

Notice: ModuleInit: Java Module ENABLED

Collapse
46: Problem with ns_java (response to 1)
Posted by Andrew Smith on
The log file gave me the error that Java module is Not enabled

[21/Mar/2002:09:34:30][5653.1024][-main-] Notice: nslog: opened '/usr/local/aol32/servers/softcell/modules/nslog/access.log'
[21/Mar/2002:09:34:30][5653.1024][-main-] Notice: modload: loading '/usr/local/aol32/bin/nsperm.so'
[21/Mar/2002:09:34:30][5653.1024][-main-] Notice: modload: loading '/usr/local/aol32/bin/libnsjava.so'
[21/Mar/2002:09:34:30][5653.1024][-main-] Notice: ModuleInit: Java Module NOT enabled
[21/Mar/2002:09:34:31][5653.1024][-main-] Notice: tclinit: sourcing '/usr/local/aol32/modules/tcl/init.tcl'
[21/Mar/2002:09:34:31][5653.1024][-main-] Notice: tclinit: sourcing '/usr/local/aol32/modules/tcl/charsets.tcl'

Collapse
47: ns_java error (response to 1)
Posted by Andrew Smith on
I got the above log error eventhough I had set Enable Java to on
ns_param EnableJava on
Collapse
48: ns_java error (response to 1)
Posted by Andrew Smith on
The further discussion related my query progressed on the thread https://openacs.org/bboard/q-and-a-fetch-msg.tcl?msg_id=0004OU&topic_id=OpenACS&topic=
Collapse
Posted by Dan Wickstrom on
Jonathon,  could you send me some details on how you created the problem with exec on nsjava?  I just tried an exec using solaris 2.8, and Sun's 1.4.0 jdk, and I don't see the problem.  I'm guessing that it is dependent on jdk vendor and version, so if you could include that information too, that would be great.
Collapse
Posted by Jonathan Ellis on
sun's jdk 1.3.1:
# /usr/java/jdk1.3.1_01/bin/java -version
java version "1.3.1_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_01)
Java HotSpot(TM) Client VM (build 1.3.1_01, mixed mode)
running on linux x86 (mandrake 8).
Collapse
Posted by Dan Wickstrom on
Thanks Jonathan,

I'll give it a try.

Collapse
Posted by Dan Wickstrom on
I can't recreate your exec problem on linux using a sun jdk. I'm using a slightly newer build than yours, so possibly it was fixed.


1005 nsadmin@localhost:~/sourceforge/nsjava/test/www >/usr/local/jdk/sun/jdk1.3.1_04/bin/java -version
java version "1.3.1_04"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_04-b02)
Java HotSpot(TM) Client VM (build 1.3.1_04-b02, mixed mode)                                                             

Could you upload your jdk to file-storage, so that I can try it? Also could you post the exec command that you were using? Thanks.

Collapse
Posted by Caroline Meeks on
I just attended a seminar on uPortal at Educause and if any of our Java experts have time I would appreciate an evaluation of how hard it would be to create a uPortal channel that duplicated the MyGroups dotLRN portlet.

This thread in the dotLRN forum has more info.

https://openacs.org/bboard/q-and-a-fetch-msg.tcl?msg_id=00059z