<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_252) on Fri Jul 16 09:39:12 UTC 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ServerPlatform (EclipseLink 3.0.2, API Reference)</title>
<meta name="date" content="2021-07-16">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="ServerPlatform (EclipseLink 3.0.2, API Reference)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage">EclipseLink 3.0.2, API Reference</div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/eclipse/persistence/platform/server/ServerLog.html" title="class in org.eclipse.persistence.platform.server"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatformBase.html" title="class in org.eclipse.persistence.platform.server"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/persistence/platform/server/ServerPlatform.html" target="_top">Frames</a></li>
<li><a href="ServerPlatform.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.eclipse.persistence.platform.server</div>
<h2 title="Interface ServerPlatform" class="title">Interface ServerPlatform</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../org/eclipse/persistence/platform/server/CustomServerPlatform.html" title="class in org.eclipse.persistence.platform.server">CustomServerPlatform</a>, <a href="../../../../../org/eclipse/persistence/platform/server/glassfish/GlassfishPlatform.html" title="class in org.eclipse.persistence.platform.server.glassfish">GlassfishPlatform</a>, <a href="../../../../../org/eclipse/persistence/platform/server/jboss/JBossPlatform.html" title="class in org.eclipse.persistence.platform.server.jboss">JBossPlatform</a>, <a href="../../../../../org/eclipse/persistence/platform/server/JMXServerPlatformBase.html" title="class in org.eclipse.persistence.platform.server">JMXServerPlatformBase</a>, <a href="../../../../../org/eclipse/persistence/platform/server/NoServerPlatform.html" title="class in org.eclipse.persistence.platform.server">NoServerPlatform</a>, <a href="../../../../../org/eclipse/persistence/platform/server/oc4j/Oc4jPlatform.html" title="class in org.eclipse.persistence.platform.server.oc4j">Oc4jPlatform</a>, <a href="../../../../../org/eclipse/persistence/platform/server/sap/SAPNetWeaver_7_1_Platform.html" title="class in org.eclipse.persistence.platform.server.sap">SAPNetWeaver_7_1_Platform</a>, <a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatformBase.html" title="class in org.eclipse.persistence.platform.server">ServerPlatformBase</a>, <a href="../../../../../org/eclipse/persistence/platform/server/wls/WebLogic_10_Platform.html" title="class in org.eclipse.persistence.platform.server.wls">WebLogic_10_Platform</a>, <a href="../../../../../org/eclipse/persistence/platform/server/wls/WebLogic_12_Platform.html" title="class in org.eclipse.persistence.platform.server.wls">WebLogic_12_Platform</a>, <a href="../../../../../org/eclipse/persistence/platform/server/wls/WebLogic_9_Platform.html" title="class in org.eclipse.persistence.platform.server.wls">WebLogic_9_Platform</a>, <a href="../../../../../org/eclipse/persistence/platform/server/wls/WebLogicPlatform.html" title="class in org.eclipse.persistence.platform.server.wls">WebLogicPlatform</a>, <a href="../../../../../org/eclipse/persistence/platform/server/was/WebSphere_6_1_Platform.html" title="class in org.eclipse.persistence.platform.server.was">WebSphere_6_1_Platform</a>, <a href="../../../../../org/eclipse/persistence/platform/server/was/WebSphere_7_Platform.html" title="class in org.eclipse.persistence.platform.server.was">WebSphere_7_Platform</a>, <a href="../../../../../org/eclipse/persistence/platform/server/was/WebSphere_EJBEmbeddable_Platform.html" title="class in org.eclipse.persistence.platform.server.was">WebSphere_EJBEmbeddable_Platform</a>, <a href="../../../../../org/eclipse/persistence/platform/server/was/WebSphere_Liberty_Platform.html" title="class in org.eclipse.persistence.platform.server.was">WebSphere_Liberty_Platform</a>, <a href="../../../../../org/eclipse/persistence/platform/server/was/WebSpherePlatform.html" title="class in org.eclipse.persistence.platform.server.was">WebSpherePlatform</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">ServerPlatform</span></pre>
<div class="block">PUBLIC:

 This is the interface describing the behavior for ServerPlatformBase, and any other
 class that wants to provide behavior for a server.

 This interface provides the behavior for

 - Which external transaction controller to use
 - Whether or not to enable JTA (external transaction control)
 - How to register/unregister for runtime services (JMX/MBean)
 - Whether or not to enable runtime services
 - How to launch container Threads

 Any subclasses of ServerPlatformBase created by the user must implement this interface.

 public API:

  String getServerNameAndVersion()</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatformBase.html" title="class in org.eclipse.persistence.platform.server"><code>ServerPlatformBase</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#clearStatementCache-java.sql.Connection-">clearStatementCache</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/sql/Connection.html?is-external=true" title="class or interface in java.sql">Connection</a>&nbsp;connection)</code>
<div class="block">INTERNAL:
 Clears statement cache of the wrapper connection.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#disableJTA--">disableJTA</a></span>()</code>
<div class="block">INTERNAL: disableJTA(): Configure the receiver such that my external transaction controller class will
 be ignored, and will NOT be used to populate DatabaseSession's external transaction controller class
 at runtime.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#disableRuntimeServices--">disableRuntimeServices</a></span>()</code>
<div class="block">INTERNAL: disableRuntimeServices(): Configure the receiver such that no JMX/MBean will be registered
 to provide runtime services for my DatabaseSession at runtime.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/persistence/sessions/DatabaseSession.html" title="interface in org.eclipse.persistence.sessions">DatabaseSession</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#getDatabaseSession--">getDatabaseSession</a></span>()</code>
<div class="block">INTERNAL: getDatabaseSession(): Answer the instance of DatabaseSession the receiver is helping.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#getExternalTransactionControllerClass--">getExternalTransactionControllerClass</a></span>()</code>
<div class="block">INTERNAL: getExternalTransactionControllerClass(): Answer the class of external transaction controller to use
 For this server platform.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#getJNDIConnectorLookupType--">getJNDIConnectorLookupType</a></span>()</code>
<div class="block">INTERNAL: Get JNDIConnector lookupType value for this platform.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#getModuleName--">getModuleName</a></span>()</code>
<div class="block">INTERNAL: getModuleName(): Answer the name of the module (jar name) that my session
 is associated with.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>org.eclipse.persistence.internal.helper.JPAClassLoaderHolder</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#getNewTempClassLoader-jakarta.persistence.spi.PersistenceUnitInfo-">getNewTempClassLoader</a></span>(jakarta.persistence.spi.PersistenceUnitInfo&nbsp;puInfo)</code>
<div class="block">INTERNAL:
 JIRA EJBTHREE-572 requires that we use the real classLoader in place of the getNewTempClassLoader().</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#getPartitionID--">getPartitionID</a></span>()</code>
<div class="block">INTERNAL: Get Partition ID.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/persistence/logging/SessionLog.html" title="interface in org.eclipse.persistence.logging">SessionLog</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#getServerLog--">getServerLog</a></span>()</code>
<div class="block">INTERNAL: getServerLog(): Return the ServerLog for this platform

 Return the default ServerLog in the base</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#getServerNameAndVersion--">getServerNameAndVersion</a></span>()</code>
<div class="block">PUBLIC: getServerNameAndVersion(): Talk to the relevant server class library, and get the server name
 and version</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#getThreadPoolSize--">getThreadPoolSize</a></span>()</code>
<div class="block">Return the thread pool size.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#initializeExternalTransactionController--">initializeExternalTransactionController</a></span>()</code>
<div class="block">INTERNAL: initializeExternalTransactionController(): Populate the DatabaseSession's
 external transaction controller with an instance of my transaction controller class.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#isJTAEnabled--">isJTAEnabled</a></span>()</code>
<div class="block">INTERNAL: isJTAEnabled(): Answer true if the DatabaseSession's external transaction controller class will
 be populated with my transaction controller class at runtime.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#isRuntimeServicesEnabled--">isRuntimeServicesEnabled</a></span>()</code>
<div class="block">INTERNAL: isRuntimeServicesEnabled(): Answer true if the JMX/MBean providing runtime services for
 the receiver's DatabaseSession will be deployed at runtime.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#isRuntimeServicesEnabledDefault--">isRuntimeServicesEnabledDefault</a></span>()</code>
<div class="block">INTERNAL:
 isRuntimeServicesEnabledDefault(): Answer true if the JMX/MBean providing runtime services for
 the receiver's DatabaseSession will be deployed at runtime.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#launchContainerRunnable-java.lang.Runnable-">launchContainerRunnable</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&nbsp;runnable)</code>
<div class="block">INTERNAL: launchContainerRunnable(Runnable runnable): Use the container library to
 start the provided Runnable.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#registerMBean--">registerMBean</a></span>()</code>
<div class="block">INTERNAL: registerMBean(): Create and deploy the JMX MBean to provide runtime services for my
 databaseSession.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#setExternalTransactionControllerClass-java.lang.Class-">setExternalTransactionControllerClass</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;newClass)</code>
<div class="block">INTERNAL: setExternalTransactionControllerClass(Class newClass): Set the class of external
 transaction controller to use in the DatabaseSession.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#setThreadPoolSize-int-">setThreadPoolSize</a></span>(int&nbsp;threadPoolSize)</code>
<div class="block">Set the thread pool size.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#shouldUseDriverManager--">shouldUseDriverManager</a></span>()</code>
<div class="block">INTERNAL: shouldUseDriverManager(): Indicates whether DriverManager should be used while connecting DefaultConnector.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#shutdown--">shutdown</a></span>()</code>
<div class="block">INTERNAL: perform any require shutdown tasks.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#unregisterMBean--">unregisterMBean</a></span>()</code>
<div class="block">INTERNAL: unregisterMBean(): Unregister the JMX MBean that was providing runtime services for my
 databaseSession.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/sql/Connection.html?is-external=true" title="class or interface in java.sql">Connection</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#unwrapConnection-java.sql.Connection-">unwrapConnection</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/sql/Connection.html?is-external=true" title="class or interface in java.sql">Connection</a>&nbsp;connection)</code>
<div class="block">INTERNAL:  This method is used to unwrap the oracle connection wrapped by
 the application server.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#usesPartitions--">usesPartitions</a></span>()</code>
<div class="block">INTERNAL: Some servers may support partitioning</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#wasFailureCommunicationBased-java.sql.SQLException-org.eclipse.persistence.internal.databaseaccess.Accessor-org.eclipse.persistence.internal.sessions.AbstractSession-">wasFailureCommunicationBased</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</a>&nbsp;exception,
                            org.eclipse.persistence.internal.databaseaccess.Accessor&nbsp;connection,
                            org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;sessionForProfile)</code>
<div class="block">INTERNAL:
 A call to this method will perform a platform based check on the connection and exception
 error code to determine if the connection is still valid or if a communication error has occurred.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getDatabaseSession--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDatabaseSession</h4>
<pre><a href="../../../../../org/eclipse/persistence/sessions/DatabaseSession.html" title="interface in org.eclipse.persistence.sessions">DatabaseSession</a>&nbsp;getDatabaseSession()</pre>
<div class="block">INTERNAL: getDatabaseSession(): Answer the instance of DatabaseSession the receiver is helping.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>DatabaseSession</dd>
</dl>
</li>
</ul>
<a name="getServerNameAndVersion--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServerNameAndVersion</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getServerNameAndVersion()</pre>
<div class="block">PUBLIC: getServerNameAndVersion(): Talk to the relevant server class library, and get the server name
 and version</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>String serverNameAndVersion</dd>
</dl>
</li>
</ul>
<a name="getModuleName--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getModuleName</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getModuleName()</pre>
<div class="block">INTERNAL: getModuleName(): Answer the name of the module (jar name) that my session
 is associated with.
 Answer "unknown" if there is no module name available.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>String moduleName</dd>
</dl>
</li>
</ul>
<a name="getExternalTransactionControllerClass--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExternalTransactionControllerClass</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;getExternalTransactionControllerClass()</pre>
<div class="block">INTERNAL: getExternalTransactionControllerClass(): Answer the class of external transaction controller to use
 For this server platform. This is read-only.

 If the subclasses of the ServerPlatformBase do not provide the Class desired, then
 a new subclass should be created to return the desired class.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Class externalTransactionControllerClass</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/persistence/transaction/JTATransactionController.html" title="class in org.eclipse.persistence.transaction"><code>JTATransactionController</code></a>, 
<a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#isJTAEnabled--"><code>isJTAEnabled()</code></a>, 
<a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#disableJTA--"><code>disableJTA()</code></a>, 
<a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#initializeExternalTransactionController--"><code>initializeExternalTransactionController()</code></a></dd>
</dl>
</li>
</ul>
<a name="setExternalTransactionControllerClass-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setExternalTransactionControllerClass</h4>
<pre>void&nbsp;setExternalTransactionControllerClass(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;newClass)</pre>
<div class="block">INTERNAL: setExternalTransactionControllerClass(Class newClass): Set the class of external
 transaction controller to use in the DatabaseSession.
 This is defined by the user via the sessions.xml.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/persistence/transaction/JTATransactionController.html" title="class in org.eclipse.persistence.transaction"><code>JTATransactionController</code></a>, 
<a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#isJTAEnabled--"><code>isJTAEnabled()</code></a>, 
<a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#disableJTA--"><code>disableJTA()</code></a>, 
<a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#initializeExternalTransactionController--"><code>initializeExternalTransactionController()</code></a></dd>
</dl>
</li>
</ul>
<a name="initializeExternalTransactionController--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initializeExternalTransactionController</h4>
<pre>void&nbsp;initializeExternalTransactionController()</pre>
<div class="block">INTERNAL: initializeExternalTransactionController(): Populate the DatabaseSession's
 external transaction controller with an instance of my transaction controller class.

 To change the external transaction controller class, we recommend creating a subclass of
 ServerPlatformBase, and overriding getExternalTransactionControllerClass()</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatformBase.html" title="class in org.eclipse.persistence.platform.server"><code>ServerPlatformBase</code></a></dd>
</dl>
</li>
</ul>
<a name="isJTAEnabled--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isJTAEnabled</h4>
<pre>boolean&nbsp;isJTAEnabled()</pre>
<div class="block">INTERNAL: isJTAEnabled(): Answer true if the DatabaseSession's external transaction controller class will
 be populated with my transaction controller class at runtime. If the transaction controller class is
 overridden in the DatabaseSession, my transaction controller class will be ignored.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>boolean isJTAEnabled</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#getExternalTransactionControllerClass--"><code>getExternalTransactionControllerClass()</code></a>, 
<a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#disableJTA--"><code>disableJTA()</code></a></dd>
</dl>
</li>
</ul>
<a name="isRuntimeServicesEnabledDefault--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRuntimeServicesEnabledDefault</h4>
<pre>boolean&nbsp;isRuntimeServicesEnabledDefault()</pre>
<div class="block">INTERNAL:
 isRuntimeServicesEnabledDefault(): Answer true if the JMX/MBean providing runtime services for
 the receiver's DatabaseSession will be deployed at runtime.
 Provide the default value for <a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#isRuntimeServicesEnabled--"><code>isRuntimeServicesEnabled()</code></a> for a
 ServerPlatform. By default this is <code>false</code> but some platforms
 can choose to have MBeans deployed by default.</div>
</li>
</ul>
<a name="disableJTA--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disableJTA</h4>
<pre>void&nbsp;disableJTA()</pre>
<div class="block">INTERNAL: disableJTA(): Configure the receiver such that my external transaction controller class will
 be ignored, and will NOT be used to populate DatabaseSession's external transaction controller class
 at runtime.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#getExternalTransactionControllerClass--"><code>getExternalTransactionControllerClass()</code></a>, 
<a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#isJTAEnabled--"><code>isJTAEnabled()</code></a></dd>
</dl>
</li>
</ul>
<a name="isRuntimeServicesEnabled--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRuntimeServicesEnabled</h4>
<pre>boolean&nbsp;isRuntimeServicesEnabled()</pre>
<div class="block">INTERNAL: isRuntimeServicesEnabled(): Answer true if the JMX/MBean providing runtime services for
 the receiver's DatabaseSession will be deployed at runtime.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>boolean isRuntimeServicesEnabled</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#disableRuntimeServices--"><code>disableRuntimeServices()</code></a></dd>
</dl>
</li>
</ul>
<a name="disableRuntimeServices--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disableRuntimeServices</h4>
<pre>void&nbsp;disableRuntimeServices()</pre>
<div class="block">INTERNAL: disableRuntimeServices(): Configure the receiver such that no JMX/MBean will be registered
 to provide runtime services for my DatabaseSession at runtime.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#isRuntimeServicesEnabled--"><code>isRuntimeServicesEnabled()</code></a></dd>
</dl>
</li>
</ul>
<a name="registerMBean--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerMBean</h4>
<pre>void&nbsp;registerMBean()</pre>
<div class="block">INTERNAL: registerMBean(): Create and deploy the JMX MBean to provide runtime services for my
 databaseSession.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#isRuntimeServicesEnabled--"><code>isRuntimeServicesEnabled()</code></a>, 
<a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#disableRuntimeServices--"><code>disableRuntimeServices()</code></a>, 
<a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#unregisterMBean--"><code>unregisterMBean()</code></a></dd>
</dl>
</li>
</ul>
<a name="unregisterMBean--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unregisterMBean</h4>
<pre>void&nbsp;unregisterMBean()</pre>
<div class="block">INTERNAL: unregisterMBean(): Unregister the JMX MBean that was providing runtime services for my
 databaseSession.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#isRuntimeServicesEnabled--"><code>isRuntimeServicesEnabled()</code></a>, 
<a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#disableRuntimeServices--"><code>disableRuntimeServices()</code></a>, 
<a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatform.html#registerMBean--"><code>registerMBean()</code></a></dd>
</dl>
</li>
</ul>
<a name="shutdown--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shutdown</h4>
<pre>void&nbsp;shutdown()</pre>
<div class="block">INTERNAL: perform any require shutdown tasks.</div>
</li>
</ul>
<a name="getThreadPoolSize--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getThreadPoolSize</h4>
<pre>int&nbsp;getThreadPoolSize()</pre>
<div class="block">Return the thread pool size.</div>
</li>
</ul>
<a name="setThreadPoolSize-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setThreadPoolSize</h4>
<pre>void&nbsp;setThreadPoolSize(int&nbsp;threadPoolSize)</pre>
<div class="block">Set the thread pool size.</div>
</li>
</ul>
<a name="unwrapConnection-java.sql.Connection-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unwrapConnection</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/sql/Connection.html?is-external=true" title="class or interface in java.sql">Connection</a>&nbsp;unwrapConnection(<a href="https://docs.oracle.com/javase/8/docs/api/java/sql/Connection.html?is-external=true" title="class or interface in java.sql">Connection</a>&nbsp;connection)</pre>
<div class="block">INTERNAL:  This method is used to unwrap the oracle connection wrapped by
 the application server.  TopLink needs this unwrapped connection for certain
 database vendor specific support.
 This is added as a workaround for bug 4460996</div>
</li>
</ul>
<a name="launchContainerRunnable-java.lang.Runnable-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>launchContainerRunnable</h4>
<pre>void&nbsp;launchContainerRunnable(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&nbsp;runnable)</pre>
<div class="block">INTERNAL: launchContainerRunnable(Runnable runnable): Use the container library to
 start the provided Runnable.

 Default behavior is to use Thread(runnable).start()</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>runnable:</code> - the instance of runnable to be "started"</dd>
</dl>
</li>
</ul>
<a name="getServerLog--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServerLog</h4>
<pre><a href="../../../../../org/eclipse/persistence/logging/SessionLog.html" title="interface in org.eclipse.persistence.logging">SessionLog</a>&nbsp;getServerLog()</pre>
<div class="block">INTERNAL: getServerLog(): Return the ServerLog for this platform

 Return the default ServerLog in the base</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>org.eclipse.persistence.logging.SessionLog</dd>
</dl>
</li>
</ul>
<a name="shouldUseDriverManager--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shouldUseDriverManager</h4>
<pre>boolean&nbsp;shouldUseDriverManager()</pre>
<div class="block">INTERNAL: shouldUseDriverManager(): Indicates whether DriverManager should be used while connecting DefaultConnector.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>boolean</dd>
</dl>
</li>
</ul>
<a name="wasFailureCommunicationBased-java.sql.SQLException-org.eclipse.persistence.internal.databaseaccess.Accessor-org.eclipse.persistence.internal.sessions.AbstractSession-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wasFailureCommunicationBased</h4>
<pre>boolean&nbsp;wasFailureCommunicationBased(<a href="https://docs.oracle.com/javase/8/docs/api/java/sql/SQLException.html?is-external=true" title="class or interface in java.sql">SQLException</a>&nbsp;exception,
                                     org.eclipse.persistence.internal.databaseaccess.Accessor&nbsp;connection,
                                     org.eclipse.persistence.internal.sessions.AbstractSession&nbsp;sessionForProfile)</pre>
<div class="block">INTERNAL:
 A call to this method will perform a platform based check on the connection and exception
 error code to determine if the connection is still valid or if a communication error has occurred.
 In the case of the server platform the connection pool itself may be tested.
 If a communication error has occurred then the query may be retried.
 If this platform is unable to determine if the error was communication based it will return
 false forcing the error to be thrown to the user.</div>
</li>
</ul>
<a name="getNewTempClassLoader-jakarta.persistence.spi.PersistenceUnitInfo-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNewTempClassLoader</h4>
<pre>org.eclipse.persistence.internal.helper.JPAClassLoaderHolder&nbsp;getNewTempClassLoader(jakarta.persistence.spi.PersistenceUnitInfo&nbsp;puInfo)</pre>
<div class="block">INTERNAL:
 JIRA EJBTHREE-572 requires that we use the real classLoader in place of the getNewTempClassLoader().
 The override code should stay in place until the UCL3 loader does not throw a NPE on loadClass()</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>puInfo</code> - - the persistence unit info</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>ClassLoaderHolder - a composite object containing the classLoader and the flag
     that is true if the classLoader returned is temporary</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>JPAClassLoaderHolder</code></dd>
</dl>
</li>
</ul>
<a name="clearStatementCache-java.sql.Connection-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearStatementCache</h4>
<pre>void&nbsp;clearStatementCache(<a href="https://docs.oracle.com/javase/8/docs/api/java/sql/Connection.html?is-external=true" title="class or interface in java.sql">Connection</a>&nbsp;connection)</pre>
<div class="block">INTERNAL:
 Clears statement cache of the wrapper connection.
 Required by Oracle proxy authentication: currently connection statement cache
 becomes invalid on switching to/from proxy session.
 This method is called by OracleJDBC_10_1_0_2ProxyConnectionCustomizer
 before opening proxy session and before closing it.</div>
</li>
</ul>
<a name="getJNDIConnectorLookupType--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJNDIConnectorLookupType</h4>
<pre>int&nbsp;getJNDIConnectorLookupType()</pre>
<div class="block">INTERNAL: Get JNDIConnector lookupType value for this platform.</div>
</li>
</ul>
<a name="usesPartitions--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>usesPartitions</h4>
<pre>boolean&nbsp;usesPartitions()</pre>
<div class="block">INTERNAL: Some servers may support partitioning</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if server supports partitions, false otherwise</dd>
</dl>
</li>
</ul>
<a name="getPartitionID--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getPartitionID</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPartitionID()</pre>
<div class="block">INTERNAL: Get Partition ID.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>partition ID</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage">EclipseLink 3.0.2, API Reference</div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/eclipse/persistence/platform/server/ServerLog.html" title="class in org.eclipse.persistence.platform.server"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/eclipse/persistence/platform/server/ServerPlatformBase.html" title="class in org.eclipse.persistence.platform.server"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/persistence/platform/server/ServerPlatform.html" target="_top">Frames</a></li>
<li><a href="ServerPlatform.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2021 <a href="http://www.eclipse.org/eclipselink">Eclipse.org - EclipseLink Project</a>. All rights reserved.</small></p>
</body>
</html>
