<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Additional Topics on</title><link>https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/</link><description>Recent content in Additional Topics on</description><generator>Hugo</generator><language>en</language><atom:link href="https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/index.xml" rel="self" type="application/rss+xml"/><item><title>Memory Usage of the AP Java</title><link>https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/memory_usage_apjava/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/memory_usage_apjava/</guid><description>&lt;p>The memory used for the different policy sizes using a sample &lt;code>HelloWorld&lt;/code> java application is described in this section. This is a sample memory usage. You can use this as a reference for memory usage in the AP Java for different policy sizes.&lt;/p>
&lt;h2 id="sample-application">Sample application&lt;/h2>
&lt;p>Before running the following program, update the &lt;code>HelloWorld.java&lt;/code> file with the policy username and data element name.&lt;/p>
&lt;h2 id="compile-and-run-the-sample-application">Compile and Run the Sample Application&lt;/h2>
&lt;p>Compile the sample application using the following command.&lt;/p></description></item><item><title>DevOps Approach for Application Protector Java</title><link>https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/devops_ap_common/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/devops_ap_common/</guid><description>&lt;p>The DevOps approach enables immutable package deployment. It uses a REST API call to download packages from the ESA in an encrypted format.&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>Note&lt;/strong>: The RP Agent should not be installed for immutable package deployments using DevOps.&lt;/p>&lt;/blockquote>
&lt;p>For more information about package deployment approaches, refer to &lt;a href="https://docs.protegrity.com/10.0/docs/pmg/pmg_policy_management_in_protector/#:~:text=protectors%20and%20later.-,Resilient%20Package%20Deployment,-A%20number%20of">Resilient Package Deployment&lt;/a>.&lt;/p>
&lt;p>A REST API call is used to download the package on your local machine. Configure the package path in the &lt;code>config.ini&lt;/code> file within the &lt;em>DevOps&lt;/em> section and the decryptor class.&lt;/p></description></item><item><title>Application Protector API Return Codes</title><link>https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/ap_return_codes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/ap_return_codes/</guid><description>&lt;p>When an application is developed using the APIs of the Protegrity Application Protector Suite, you may encounter the Application Protector API Return Codes.
For more information about log return codes, refer to &lt;a href="https://docs.protegrity.com/10.0/docs/troubleshooting/iag_log_return_codes/">Log return codes&lt;/a>.&lt;/p>
&lt;h2 id="sample-log-for-ap-return-codes">Sample Log for AP Return Codes&lt;/h2>
&lt;p>The following is a sample log generated in &lt;strong>Discover&lt;/strong> on the &lt;strong>Audit Store Dashboards&lt;/strong> in the ESA.&lt;/p>
&lt;p>&lt;img src="https://docs.protegrity.com/protectors/10.1/docs/images/ap/ap_sample_log_return_code.png" alt="Sample log for AP return codes">&lt;/p>
&lt;p>Protection audit logs are stored in the &lt;strong>Audit Store&lt;/strong>. Select the &lt;code>pty_insight_*audit*&lt;/code> index to view the protection logs.&lt;/p></description></item><item><title>Config.ini file for Application Protector</title><link>https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/ap_config_file/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/ap_config_file/</guid><description>&lt;p>The Application Protector can be configured using the &lt;code>config.ini&lt;/code> file. By default, this file is located in the &lt;em>&amp;lt;installation directory&amp;gt;/sdk/&amp;lt;protector&amp;gt;/data/&lt;/em> directory.&lt;/p>
&lt;p>The various configurations required for setting up the Application Protector are described in this section.&lt;/p>
&lt;h2 id="sample-configini-file">Sample config.ini file&lt;/h2>
&lt;p>The following represents a sample &lt;code>config.ini&lt;/code> file.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span># -----------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Protector configuration
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ----------------------------- 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>[protector]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Cadence determines how often the protector connects with shared memory to fetch the policy updates in background.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Default is 60 seconds. So by default, every 60 seconds protector tries to fetch the policy updates.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>#
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Default 60.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cadence = 60
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># The time during which an session object is valid. Default = 15 minutes.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>session.sessiontimeout = 15
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>###############################################################################
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Log Provider Config
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>###############################################################################
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>[log]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># In case that connection to fluent-bit is lost, set how audits/logs are handled
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># drop : (default) Protector throws logs away if connection to the fluentbit is lost
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># error : Protector returns error without protecting/unprotecting 
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># data if connection to the fluentbit is lost
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>mode = drop
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Host/IP to fluent-bit where audits/logs will be forwarded from the protector
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>#
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Default localhost
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>host = localhost
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;!--# If the cadence is set to "0", then the protector will get the policy only once.-->
&lt;h2 id="different-configurations-for-application-protector">Different configurations for Application Protector&lt;/h2>
&lt;p>The following are the various configurations:&lt;/p></description></item><item><title>Multi-node Application Protector Architecture</title><link>https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/ap_multinode_arch/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/ap_multinode_arch/</guid><description>&lt;p>The multi-node Application Protector (AP) architecture, its individual components, and how logs are collected using the Log Forwarder are described in this section.&lt;/p>
&lt;p>The following figure describes the multi-node AP architecture.&lt;/p>
&lt;p>&lt;img src="https://docs.protegrity.com/protectors/10.1/docs/images/ap/multi-node_sdk_arch.png" alt="Multi-node AP architecture">&lt;/p>
&lt;p>For example, some AP nodes are connected to an ESA, which includes the Audit Store component. Each AP node contains a Log Forwarder, RP Agent, and AP instance for sending logs to the ESA.&lt;/p>
&lt;p>&lt;strong>Protector&lt;/strong>: The AP can be configured using the &lt;code>config.ini&lt;/code> file. &lt;br>
For more information about the configurations, refer to &lt;a href="https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/ap_config_file/">Config.ini file for Application Protector&lt;/a>.&lt;/p></description></item><item><title>Installation Directory Structure Overview</title><link>https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/install_directory/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/install_directory/</guid><description>&lt;p>The installation directory is organized into clearly defined subdirectories. This directory structure applies specifically to the &lt;code>/opt/protegrity/upgrade&lt;/code> directory. Each directory has a specific role during installation, upgrade, rollback, and runtime operations.&lt;/p>
&lt;h3 id="bin-directory">&lt;code>bin/&lt;/code> Directory&lt;/h3>
&lt;p>The bin directory contains the executable component required to perform upgrade and rollback operations. This directory includes:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>The sdkupgrd binary, which is the primary executable used for upgrade and rollback workflows.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>The 10.0.gpg file must be manually added to this directory from ESA and is required for verification purposes.&lt;/p></description></item><item><title>SDK Upgrader Agent Configuration File</title><link>https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/sdk_upg_agent/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/sdk_upg_agent/</guid><description>&lt;blockquote>
&lt;p>&lt;strong>Note&lt;/strong>: All configuration file parameters must be reviewed and updated as needed prior to upgrade or rollback, except for &lt;code>new-logforwarder-path&lt;/code>.&lt;/p>&lt;/blockquote>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span># ==============================================================================
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># SDK Upgrader Agent Configuration File
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ==============================================================================
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># This file contains all configuration parameters for the SDK Upgrader Agent.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># The agent reads values from this file instead of command-line arguments.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>#
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Format: key = value
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Lines starting with &amp;#39;#&amp;#39; are comments and ignored.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Empty lines are ignored.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Leading/trailing whitespace around keys and values is trimmed.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ==============================================================================
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Build Location (REQUIRED)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># URL or local path to the build file
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Examples:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># location-of-build = https://example.com/build/sdk-10.1.0.tgz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># location-of-build = /tmp/sdk-10.1.0.tgz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>location-of-build =
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Upgrade Mode
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Set to &amp;#34;yes&amp;#34; to enable offline upgrade mode (default: no)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>offline = no
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># RPAgent Configuration
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Path to RPAgent installation directory
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Default: /opt/protegrity/rpagent
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>rpagent-path = /opt/protegrity/rpagent
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># LogForwarder Configuration
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Path to LogForwarder installation directory
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Default: /opt/protegrity/logforwarder
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>logforwarder-path = /opt/protegrity/logforwarder
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># LogForwarder Endpoints
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Comma-separated list of LogForwarder endpoints (host[:port])
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Default port is 9200 if not specified
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Example: endpoints = eshost1:9200,eshost2:9200
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>endpoints =
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ESA (Enterprise Security Administrator) Configuration
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Note: ESA username and password are NOT stored in this file for security.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># They will be prompted interactively (password hidden) or can be passed
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># via --esa-user and --esa-password command-line arguments.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>esa-host =
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>esa-port = 25400
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># DevOps Mode
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># When enabled, skips RPAgent installation
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Values: yes | no (default: no)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>devops = no
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># LogForwarder Upgrade
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Enable or disable LogForwarder upgrade
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Values: yes | no (default: yes)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>isFluentBit = yes
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Insecure Mode
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># RPAgent with insecure mode
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Values: yes | no (default: no)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>insecure = no
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Protector Paths
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Comma-separated list of protector installation paths
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Example: protector-paths = /opt/protegrity/sdk/java,/opt/protegrity/sdk/python
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Default: /opt/protegrity/sdk/java
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>protector-paths = /opt/protegrity/sdk/java
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># New LogForwarder Path (Error Mode)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Path to install new logforwarder for error mode parallel upgrade.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># The {version} placeholder will be replaced with the actual build version at runtime.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Default is derived from logforwarder-path by stripping the trailing directory
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># name and appending logforwarder_{version}. For example:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># logforwarder-path = /opt/protegrity/logforwarder
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># → new-logforwarder-path = /opt/protegrity/logforwarder_{version}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># logforwarder-path = /root/abcc/logforwarder
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># → new-logforwarder-path = /root/abcc/logforwarder_{version}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>new-logforwarder-path =
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Logging Options
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># ------------------------------------------------------------------------------
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Print logs to console (yes | no, default: no)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>stdout = no
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Enable debug logging (yes | no, default: no)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>debug = no
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Troubleshooting for AP Java Upgrade</title><link>https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/troubleshooting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/troubleshooting/</guid><description>&lt;p>This section describes common issues that may occur during AP Java upgrades and how to resolve them.&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Issue&lt;/th>
 &lt;th>Symptom&lt;/th>
 &lt;th>Resolution&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Offline upgrade fails due to a running process error&lt;/td>
 &lt;td>The offline upgrade fails with an error indicating that a process is still running, even though no AP Java process is active.&lt;/td>
 &lt;td>1. Navigate to the &lt;code>&amp;lt;INSTALL_DIR&amp;gt;/upgrader/active_processes&lt;/code> directory. &lt;br> 2. Check for any stale PID files. &lt;br> 3. Remove the stale PID files. &lt;br> 4. Retry the offline upgrade.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Upgrade fails during build extraction when using a local build file&lt;/td>
 &lt;td>The upgrade fails during the build extraction phase when a local build file path &lt;code>.tgz&lt;/code> is provided to the Agent. &lt;br> This happens if an extracted build directory or an inner &lt;code>.tgz&lt;/code> file is passed instead of the original build archive.&lt;/td>
 &lt;td>Ensure that: &lt;br> - You pass only the unextracted build file (&lt;code>.tgz&lt;/code>) to the Agent. &lt;br> - The path does not point to any inner or manually extracted &lt;code>.tgz&lt;/code> file. &lt;br> Retry the upgrade after correcting the build file path.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Upgrade or auto-rollback fails&lt;/td>
 &lt;td>The upgrade or the automatic rollback operation does not complete successfully.&lt;/td>
 &lt;td>- Perform an offline rollback to recover the system state. &lt;br> - After the offline rollback completes, verify system stability before retrying the upgrade.&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&amp;ldquo;Upgrade is still in progress&amp;rdquo; error when starting AP Java&lt;/td>
 &lt;td>AP Java fails to start and reports that an upgrade is still in progress.&lt;/td>
 &lt;td>1. Open the &lt;code>&amp;lt;INSTALL_DIR&amp;gt;/upgrader/data/metadata.ini&lt;/code> file. &lt;br> 2. Verify that the &lt;code>IsUpgradeInProgress&lt;/code> parameter value is set to &lt;code>false&lt;/code>. &lt;br> 3. If the value is set to &lt;code>true&lt;/code>, update it to &lt;code>false&lt;/code>. &lt;br> 4. Save the file. &lt;br> 5. Restart the AP Java application.&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table></description></item><item><title>Uninstalling the Application Protector</title><link>https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/uninstall_app_protector/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.protegrity.com/protectors/10.1/docs/ap/ap_java/appendix/uninstall_app_protector/</guid><description>&lt;h2 id="uninstalling-application-protector-ap-java-from-linux">Uninstalling Application Protector (AP) Java from Linux&lt;/h2>
&lt;p>This section outlines the steps to uninstall the various components of AP Java from a Linux platform.&lt;/p>
&lt;h3 id="uninstalling-the-log-forwarder-from-linux">Uninstalling the Log Forwarder from Linux&lt;/h3>
&lt;blockquote>
&lt;p>&lt;strong>Note&lt;/strong>: To preserve all the configurations while upgrading the Log Forwarder, ensure all the files present under the &lt;code>/opt/protegrity/logforwarder/data/config.d&lt;/code> directory are backed up.&lt;/p>&lt;/blockquote>
&lt;p>To uninstall the Log Forwarder from a Linux platform:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Navigate to the &lt;code>/opt/protegrity/logforwarder/bin&lt;/code> directory.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Stop the Log Forwarder using the following command.&lt;/p></description></item></channel></rss>