114 lines
8.0 KiB
HTML
114 lines
8.0 KiB
HTML
|
<?xml version="1.0" encoding="UTF-8"?>
|
||
|
<!DOCTYPE html
|
||
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
|
<html lang="en-us" xml:lang="en-us">
|
||
|
<head>
|
||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||
|
<meta name="security" content="public" />
|
||
|
<meta name="Robots" content="index,follow" />
|
||
|
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
|
||
|
<meta name="DC.Type" content="concept" />
|
||
|
<meta name="DC.Title" content="Teraspace storage model native methods for Java" />
|
||
|
<meta name="abstract" content="The iSeries Java virtual machine (JVM) now supports the use of teraspace storage model native methods. The teraspace storage model provides a large process-local address environment for ILE programs. Using teraspace allows you to port native method code from other operating systems to i5/OS with little or no source code changes." />
|
||
|
<meta name="description" content="The iSeries Java virtual machine (JVM) now supports the use of teraspace storage model native methods. The teraspace storage model provides a large process-local address environment for ILE programs. Using teraspace allows you to port native method code from other operating systems to i5/OS with little or no source code changes." />
|
||
|
<meta name="DC.Relation" scheme="URI" content="othlang.htm" />
|
||
|
<meta name="DC.Relation" scheme="URI" content="jni.htm" />
|
||
|
<meta name="DC.Relation" scheme="URI" content="rzahapaseexmplsmain.htm" />
|
||
|
<meta name="DC.Relation" scheme="URI" content="ilejava.htm" />
|
||
|
<meta name="DC.Relation" scheme="URI" content="javalang.htm" />
|
||
|
<meta name="DC.Relation" scheme="URI" content="interpro.htm" />
|
||
|
<meta name="copyright" content="(C) Copyright IBM Corporation 2006" />
|
||
|
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 2006" />
|
||
|
<meta name="DC.Format" content="XHTML" />
|
||
|
<meta name="DC.Identifier" content="rzahateraspacemain" />
|
||
|
<meta name="DC.Language" content="en-us" />
|
||
|
<!-- All rights reserved. Licensed Materials Property of IBM -->
|
||
|
<!-- US Government Users Restricted Rights -->
|
||
|
<!-- Use, duplication or disclosure restricted by -->
|
||
|
<!-- GSA ADP Schedule Contract with IBM Corp. -->
|
||
|
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
|
||
|
<link rel="stylesheet" type="text/css" href="./ic.css" />
|
||
|
<title>Teraspace storage model native methods for Java</title>
|
||
|
</head>
|
||
|
<body id="rzahateraspacemain"><a name="rzahateraspacemain"><!-- --></a>
|
||
|
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
|
||
|
<h1 class="topictitle1">Teraspace storage model native methods for Java</h1>
|
||
|
<div><p>The iSeries™ Java™ virtual
|
||
|
machine (JVM) now supports the use of teraspace storage model native methods.
|
||
|
The teraspace storage model provides a large process-local address environment
|
||
|
for ILE programs. Using teraspace allows you to port native method code from
|
||
|
other operating systems to <span class="keyword">i5/OS™</span> with
|
||
|
little or no source code changes.</p>
|
||
|
<p>For details about programming with the teraspace storage model, see the
|
||
|
following information:</p>
|
||
|
<blockquote> <p><a href="../books/sc415606.pdf" target="_blank">Chapter
|
||
|
4 of ILE Concepts</a> </p>
|
||
|
<p><a href="../books/sc092712.pdf" target="_blank">Chapter 17 of WebSphere<sup>®</sup> Development Studio ILE C/C++
|
||
|
Programmer's Guide</a> </p>
|
||
|
</blockquote>
|
||
|
<p>The concept for Java native methods created for the teraspace
|
||
|
storage model is very similar to that of native methods that use single-level
|
||
|
storage. The JVM passes the teraspace native methods a pointer to the Java Native
|
||
|
Interface (JNI) environment that the methods can use to call JNI functions.</p>
|
||
|
<p>For teraspace storage model native methods, the JVM provides JNI function
|
||
|
implementations that utilize teraspace storage model and 8-byte pointers.</p>
|
||
|
<div class="section"><h4 class="sectiontitle">Creating teraspace native methods</h4><p>To successfully
|
||
|
create a teraspace storage model native method, your teraspace module creation
|
||
|
command needs to use the following options:</p>
|
||
|
<pre> TERASPACE(*YES) STGMDL(*TERASPACE) DTAMDL(*LLP64)</pre>
|
||
|
<p>The
|
||
|
following option (<samp class="codeph">*TSIFC</samp>), to use teraspace storage functions,
|
||
|
is optional:</p>
|
||
|
<pre> TERASPACE(*YES *TSIFC)</pre>
|
||
|
<div class="note"><span class="notetitle">Note:</span> If
|
||
|
you do not use <samp class="codeph">DTAMDL(*LLP64)</samp> when using teraspace storage
|
||
|
model Java native
|
||
|
methods, calling a native method throws a runtime exception.</div>
|
||
|
</div>
|
||
|
<div class="section"><h4 class="sectiontitle">Creating teraspace service programs that use native methods</h4><p>In
|
||
|
order to create a teraspace storage model service program, use the following
|
||
|
option on the Create Service Program (CRTSRVPGM) control language (CL) command:</p>
|
||
|
<pre> CRTSRVPGM STGMDL(*TERASPACE)</pre>
|
||
|
<p>In
|
||
|
addition, you should use the <samp class="codeph">ACTGRP(*CALLER)</samp> option, which
|
||
|
allows the JVM to activate all teraspace storage model native method service
|
||
|
programs into the same teraspace activation group. Using a teraspace activation
|
||
|
group this way can be important for native methods to efficiently handle
|
||
|
exceptions.</p>
|
||
|
<p>For additional details on program activation and activation
|
||
|
groups, see the following information:</p>
|
||
|
<blockquote> <p><a href="../books/sc415606.pdf" target="_blank">Chapter 3 of ILE Concepts</a> </p>
|
||
|
</blockquote>
|
||
|
</div>
|
||
|
<div class="section"><h4 class="sectiontitle">Using Java Invocation APIs with teraspace native
|
||
|
methods</h4><p>Use the Invocation API GetEnv function when the JNI environment
|
||
|
pointer does not match the storage model of the service program. The Invocation
|
||
|
API GetEnv function always returns the correct JNI environment pointer. For
|
||
|
more information, see the following pages:</p>
|
||
|
<blockquote> <p><a href="invocapi.htm">Java Invocation
|
||
|
API</a></p>
|
||
|
<p><a href="javaapi/guide/jni/jni-12.html" target="_blank">JNI Enhancements</a></p>
|
||
|
</blockquote>
|
||
|
<p>The JVM supports both
|
||
|
single-level and teraspace storage model native methods, but the two storage
|
||
|
models use different JNI environments. Because the two storage models use
|
||
|
different JNI environments, do not pass the JNI environment pointer as
|
||
|
a parameter between native methods in the two storage models.</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div>
|
||
|
<div class="familylinks">
|
||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="othlang.htm" title="With Java, you have multiple ways to call code that was written in languages other than Java.">Java with other programming languages</a></div>
|
||
|
</div>
|
||
|
<div class="relconcepts"><strong>Related concepts</strong><br />
|
||
|
<div><a href="rzahapaseexmplsmain.htm" title="The iSeries Java virtual machine (JVM) supports the use of native methods running in the i5/OS PASE environment. Prior to V5R2, the native iSeries JVM used only ILE native methods.">IBM i5/OS PASE native methods for Java</a></div>
|
||
|
<div><a href="ilejava.htm" title="The Java environment on an iSeries server is separate from the integrated language environment (ILE). Java is not an ILE language, and it cannot bind to ILE object modules to create programs or service programs on an iSeries server.">Comparison of Integrated Language Environment and Java</a></div>
|
||
|
<div><a href="javalang.htm" title="Use the java.lang.Runtime.exec method to call programs or commands from within your Java program. Using java.lang.Runtime.exec() method creates one or more additional thread-enabled jobs. The additional jobs process the command string that you pass on the method.">Use java.lang.Runtime.exec()</a></div>
|
||
|
<div><a href="interpro.htm" title="When communicating with programs that are running in another process, there are a number of options.">Interprocess communications</a></div>
|
||
|
</div>
|
||
|
<div class="reltasks"><strong>Related tasks</strong><br />
|
||
|
<div><a href="jni.htm" title="You should only use native methods in cases where pure Java cannot meet your programming needs.">Use the Java Native Interface for native methods</a></div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</body>
|
||
|
</html>
|