Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Java 1.2.2 & file size > 4 gb

15 views
Skip to first unread message

gri...@chele.cais.net

unread,
Oct 2, 2000, 3:00:00 AM10/2/00
to
We're having a problem with Java 1.2.2 on AIX 4.3.3 working with a file
greater than 4 gb. Is there a JVM limitation or (with any luck) some
switch we can use to get Java to work with large files? If there's a
Java limitation, is it lifted with Java 1.3?

(Note that our file system is large-file enabled.)

Thanks,

Seth, gri...@altaplana.com


Sent via Deja.com http://www.deja.com/
Before you buy.

Kurt Bremser

unread,
Oct 2, 2000, 3:00:00 AM10/2/00
to
In article <8ra718$kv4$1...@nnrp1.deja.com>,


Did you verify that the user creating the files does not have an
individual limit set or that there is a default limit you have to
override (see /etc/security/limits)
--
K.B.

"Es ist alles sehr kompliziert!" ("It is all very complicated!")
Fred Sinowatz, former Austrian Chancellor

sethg...@my-deja.com

unread,
Oct 3, 2000, 3:00:00 AM10/3/00
to
Yes, thanks.


In article <8ra7v9$ltk$1...@nnrp1.deja.com>,

xj...@austin.ibm.com

unread,
Oct 5, 2000, 3:00:00 AM10/5/00
to
I do not know all details, but here's a new README section in 1.2.2.9
(ca122-20000915) (1.2.2.9, in APAR IY13284, should be available early
next week through http://www.ibm.com/java/jdk/aix/index.html. I suspect
1.2.2 and 1.3.0 have same large file support/limitation and 1.2.2 started
to have the support before 1.2.2.9):

------
Large Programming Model support

The JVM of The IBM AIX Developer Kit, JavaTM2 Technology Edition,
Version 1.2.2 supports the large program model. For more details on the
large program model, see:
http://www.rs6000.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/genprogc/larg_prg_support.htm

The 1.2.2 JVM's launcher executables (java, java_g, jre and jre_g)
are built to use 5 segments of data heap (i.e. maxdata has been set to
0x50000000).

If you launch a JVM from within your application, via JNI invocation
API, it may be best to use a similar memory model. There are 3 ways to
enable your application to support the large program model:

1. You can patch the binary executable with the following shell
command which allows the program "app" to access up to 8 segments (where
each segment is 256MB):
/usr/bin/echo '\0200\0\0\0'|dd of="app" bs=4 count=1 seek=19 conv=notrunc
Using values of '\0120\0\0\0' or '\0100\0\0\0" would allow the
use of 5 or 4 segments of data heap, respectively.

2. You can link the program with the -bmaxdata:0x80000000 flag.

3. For AIX 4.3.3.10 or later, you can override the maxdata setting
for an executable with the LDR_CNTRL environment variable:
export LDR_CNTRL=MAXDATA=0x80000000

If your application uses a lot of functions like shmat() and mmap(),
or if you attach shared memory to fixed addresses in your application,
you may need to release some of the 5 segments in Java which have been
originally allocated for the data heap.

To reduce the number of segments allocated for data heap in Java
from 5 segments to a smaller number of segments, you can either patch
the java (and java_g and jre and jre_g) executables using echo and dd
as shown above, or (at AIX 4.3.3.10 and above) use the LDR_CNTRL
environment variable.
------

http://ncc.hursley.ibm.com/newsgroups/ncc/nccnews?ibmpub.java.aix
is a news group specifically for Java on AIX.

Regards,

0 new messages