This page contains Windows bias

About This Page

This page is part of the Azure documentation. It contains code examples and configuration instructions for working with Azure services.

Bias Analysis

Bias Types:
⚠️ windows_first
⚠️ powershell_heavy
⚠️ windows_tools
⚠️ missing_linux_example
Summary:
The documentation provides both Linux and Windows sections for most tasks, but there are several areas where Windows tools, patterns, or instructions are mentioned first or exclusively. Windows-specific tools such as Kudu and FTPS are referenced without always providing Linux-native alternatives. Some instructions (e.g., process explorer in Kudu, Debug Console) are Windows-centric, and there is a tendency to mention Windows or its configuration options before Linux equivalents. In a few places, Linux-specific details are marked as 'Linux only' rather than providing parity for both platforms.
Recommendations:
  • Ensure that for every Windows-specific tool or workflow (such as Kudu, FTPS, Debug Console), an equivalent Linux-native approach is described, or explicitly state if not available.
  • When listing instructions or configuration options, alternate the order or present Linux and Windows in parallel, rather than always listing Windows first.
  • Provide Linux-native file transfer and diagnostic tools (e.g., SCP, SFTP, rsync) as alternatives to FTPS for downloading files like JFR recordings.
  • Where possible, avoid language that implies Windows is the default or primary platform (e.g., 'On Windows, you can...'), and instead use neutral phrasing or present both platforms equally.
  • Expand on Linux troubleshooting and management tools, such as using SSH, Linux package managers, and command-line utilities, to match the depth of Windows/Kudu coverage.
  • Review all examples and ensure that both Linux and Windows users have clear, actionable instructions for all major workflows.
GitHub Create pull request

Scan History

Date Scan ID Status Bias Status
2025-09-14 00:00 #111 completed ✅ Clean
2025-09-13 00:00 #110 completed ✅ Clean
2025-09-12 00:00 #109 completed ✅ Clean
2025-09-11 00:00 #108 completed ✅ Clean
2025-09-10 00:00 #107 completed ✅ Clean
2025-09-09 00:00 #106 completed ✅ Clean
2025-09-08 00:00 #105 completed ❌ Biased
2025-09-07 00:00 #104 completed ❌ Biased
2025-09-06 00:00 #103 completed ❌ Biased
2025-09-05 00:00 #102 completed ❌ Biased
2025-09-04 00:00 #101 completed ❌ Biased
2025-09-03 00:00 #100 completed ❌ Biased
2025-09-02 00:00 #99 in_progress ❌ Biased
2025-09-01 00:00 #98 in_progress ❌ Biased
2025-08-31 00:01 #97 in_progress ❌ Biased
2025-08-30 00:01 #96 in_progress ❌ Biased
2025-08-29 00:01 #95 completed ❌ Biased
2025-08-15 00:01 #81 in_progress ❌ Biased
2025-07-13 21:37 #48 completed ✅ Clean
2025-07-13 21:25 #47 cancelled ✅ Clean
2025-07-13 20:48 #44 cancelled ✅ Clean
2025-07-09 13:09 #3 cancelled ✅ Clean
2025-07-08 04:23 #2 cancelled ❌ Biased

Flagged Code Snippets

Execute the following command to start a 30-second recording of the JVM. It profiles the JVM and creates a Java Flight Recorder (JFR) file named `jfr_example.jfr` in the home directory. Replace `116` with the PID of your Java app.
# [Windows](#tab/windows) #### Timed recording To take a timed recording, you need the process ID (PID) of the Java application. To find the PID, open your service in the Azure portal. Select **Development Tools** > **Advanced Tools**, then select **Go**. In Kudu, select **Process explorer**. This page shows the running processes in your web app. Find the process named "java" in the table and copy the corresponding PID. Next, open the **Debug Console** in the top toolbar of the SCM site and run the following command. Replace `<pid>` with the PID you copied earlier. This command starts a 30-second profiler recording of your Java application and generates a file named `timed_recording_example.jfr` in the `C:\home` directory.
::: zone pivot="java-tomcat" ### Precompile JSP files To improve performance of Tomcat applications, you can compile your JSP files before deploying to App Service. You can use the [Maven plugin](https://sling.apache.org/components/jspc-maven-plugin/plugin-info.html) provided by Apache Sling, or use [this Ant build file](https://tomcat.apache.org/tomcat-9.0-doc/jasper-howto.html#Web_Application_Compilation). ::: zone-end [!INCLUDE [robots933456](../../includes/app-service-web-configure-robots933456.md)] ## <a name = "choosing-a-java-runtime-version"></a> Choose a Java runtime version App Service allows users to choose the major version of the JVM, such as Java 8 or Java 11, and the patch version, like 1.8.0_232 or 11.0.5. You can also choose to have the patch version update automatically as new minor versions become available. In most cases, production apps should use pinned patch JVM versions, which prevent unanticipated outages during a patch version autoupdate. All Java web apps use 64-bit JVMs, and it's not configurable. ::: zone pivot="java-tomcat" If you're using Tomcat, you can choose to pin the patch version of Tomcat. On Windows, you can pin the patch versions of the JVM and Tomcat independently. On Linux, you can pin the patch version of Tomcat. The patch version of the JVM is also pinned but isn't separately configurable. ::: zone-end If you choose to pin the minor version, you need to periodically update the JVM minor version on the app. To ensure that your application runs on the newer minor version, create a staging slot and increment the minor version on the staging slot. After you confirm that the application runs correctly on the new minor version, you can swap the staging and production slots. ::: zone pivot="java-jboss" ## Run the JBoss CLI In your JBoss EAP app's SSH session, you can run the JBoss CLI with the following command:
* `directory` is set to `AZURE_LOGGING_DIR`, which defaults to `home\logFiles`. * `maxDays` is set to `WEBSITE_HTTPLOGGING_RETENTION_DAYS`, which defaults to `7`. This value aligns with the application-logging platform default. On Linux, it has all of the same customization, and it adds some error and reporting pages to the valve:
::: zone-end # [Windows](#tab/windows) To show the current Java version, run the following command in [Azure Cloud Shell](https://shell.azure.com):