Skip to content

Commit c4e8284

Browse files
authored
Merge pull request #289581 from cephalin/jboss-config
cli and data source steps
2 parents bb1cc3c + e55d895 commit c4e8284

File tree

8 files changed

+462
-63
lines changed

8 files changed

+462
-63
lines changed

articles/app-service/configure-language-java-apm.md

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,22 @@ To enable via the Azure CLI, you need to create an Application Insights resource
6969
7070
# [Linux](#tab/linux)
7171
72+
::: zone pivot="java-jboss"
73+
74+
> [!NOTE]
75+
> The latest [New Relic documentation](https://docs.newrelic.com/install/java/?deployment=appServer&framework=jboss) lists JBoss EAP support up to 7.x. JBoss EAP 8.x is not yet supported.
76+
77+
::: zone-end
78+
7279
1. Create a NewRelic account at [NewRelic.com](https://newrelic.com/signup)
73-
2. Download the Java agent from NewRelic. It has a file name similar to *newrelic-java-x.x.x.zip*.
80+
2. [Download the Java agent from NewRelic](https://download.newrelic.com/newrelic/java-agent/newrelic-agent/current/newrelic-java.zip).
7481
3. Copy your license key, you need it to configure the agent later.
7582
4. [SSH into your App Service instance](configure-linux-open-ssh-session.md) and create a new directory */home/site/wwwroot/apm*.
7683
5. Upload the unpacked NewRelic Java agent files into a directory under */home/site/wwwroot/apm*. The files for your agent should be in */home/site/wwwroot/apm/newrelic*.
7784
6. Modify the YAML file at */home/site/wwwroot/apm/newrelic/newrelic.yml* and replace the placeholder license value with your own license key.
7885
7. In the Azure portal, browse to your application in App Service and create a new Application Setting.
7986
80-
::: zone pivot="java-javase"
87+
::: zone pivot="java-javase,java-jboss"
8188
8289
Create an environment variable named `JAVA_OPTS` with the value `-javaagent:/home/site/wwwroot/apm/newrelic/newrelic.jar`.
8390
@@ -89,12 +96,6 @@ To enable via the Azure CLI, you need to create an Application Insights resource
8996
9097
::: zone-end
9198
92-
::: zone pivot="java-jboss"
93-
94-
For **JBoss EAP**, `[TODO]`.
95-
96-
::: zone-end
97-
9899
# [Windows](#tab/windows)
99100
100101
1. Create a NewRelic account at [NewRelic.com](https://newrelic.com/signup)
@@ -117,16 +118,21 @@ To enable via the Azure CLI, you need to create an Application Insights resource
117118
118119
::: zone-end
119120
120-
::: zone pivot="java-jboss"
121+
---
121122
122-
For **JBoss EAP**, `[TODO]`.
123+
::: zone pivot="java-javase,java-jboss"
123124
124-
::: zone-end
125+
> [!NOTE]
126+
> If you already have an environment variable for `JAVA_OPTS`, append the `-javaagent:/...` option to the end of the current value.
125127
126-
---
128+
::: zone-end
129+
130+
::: zone pivot="java-tomcat"
127131
128132
> [!NOTE]
129-
> If you already have an environment variable for `JAVA_OPTS` or `CATALINA_OPTS`, append the `-javaagent:/...` option to the end of the current value.
133+
> If you already have an environment variable for `CATALINA_OPTS`, append the `-javaagent:/...` option to the end of the current value.
134+
135+
::: zone-end
130136
131137
## Configure AppDynamics
132138
@@ -152,7 +158,7 @@ To enable via the Azure CLI, you need to create an Application Insights resource
152158
153159
::: zone pivot="java-jboss"
154160
155-
For **JBoss EAP**, `[TODO]`.
161+
<!-- For **JBoss EAP**, `[TODO]`. -->
156162
157163
::: zone-end
158164
@@ -176,31 +182,25 @@ To enable via the Azure CLI, you need to create an Application Insights resource
176182
177183
::: zone-end
178184
179-
::: zone pivot="java-jboss"
180-
181-
For **JBoss EAP**, `[TODO]`.
182-
183-
::: zone-end
184-
185185
---
186186
187187
## Configure Datadog
188188
189189
# [Linux](#tab/linux)
190-
* The configuration options are different depending on which Datadog site your organization is using. See the official [Datadog Integration for Azure Documentation](https://docs.datadoghq.com/integrations/azure/)
190+
The configuration options are different depending on which Datadog site your organization is using. See the official [Datadog Integration for Azure Documentation](https://docs.datadoghq.com/integrations/azure/)
191191
192192
# [Windows](#tab/windows)
193-
* The configuration options are different depending on which Datadog site your organization is using. See the official [Datadog Integration for Azure Documentation](https://docs.datadoghq.com/integrations/azure/)
193+
The configuration options are different depending on which Datadog site your organization is using. See the official [Datadog Integration for Azure Documentation](https://docs.datadoghq.com/integrations/azure/)
194194
195195
---
196196
197197
## Configure Dynatrace
198198
199199
# [Linux](#tab/linux)
200-
* Dynatrace provides an [Azure Native Dynatrace Service](https://www.dynatrace.com/monitoring/technologies/azure-monitoring/). To monitor Azure App Services using Dynatrace, see the official [Dynatrace for Azure documentation](https://docs.datadoghq.com/integrations/azure/)
200+
Dynatrace provides an [Azure Native Dynatrace Service](https://www.dynatrace.com/monitoring/technologies/azure-monitoring/). To monitor Azure App Services using Dynatrace, see the official [Dynatrace for Azure documentation](https://docs.datadoghq.com/integrations/azure/)
201201
202202
# [Windows](#tab/windows)
203-
* Dynatrace provides an [Azure Native Dynatrace Service](https://www.dynatrace.com/monitoring/technologies/azure-monitoring/). To monitor Azure App Services using Dynatrace, see the official [Dynatrace for Azure documentation](https://docs.datadoghq.com/integrations/azure/)
203+
Dynatrace provides an [Azure Native Dynatrace Service](https://www.dynatrace.com/monitoring/technologies/azure-monitoring/). To monitor Azure App Services using Dynatrace, see the official [Dynatrace for Azure documentation](https://docs.datadoghq.com/integrations/azure/)
204204
205205
---
206206

articles/app-service/configure-language-java-data-sources.md

Lines changed: 15 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ For more information, see the [Spring Boot documentation on data access](https:/
4141
::: zone pivot="java-tomcat"
4242

4343
> [!TIP]
44-
> By default, the Linux Tomcat containers can automatically configure shared data sources for you in the Tomcat server. The only thing for you to do is add an app setting that contains a valid JDBC connection string to an Oracle, SQL Server, PostgreSQL, or MySQL database (including the connection credentials), and App Service automatically adds the cooresponding shared database to */usr/local/tomcat/conf/context.xml* for you, using an appropriate driver available in the container. For an end-to-end scenario using this approach, see [Tutorial: Build a Tomcat web app with Azure App Service on Linux and MySQL](tutorial-java-tomcat-mysql-app.md).
44+
> By default, the Linux Tomcat containers can automatically configure shared data sources for you in the Tomcat server. The only thing for you to do is add an app setting that contains a valid JDBC connection string to an Oracle, SQL Server, PostgreSQL, or MySQL database (including the connection credentials), and App Service automatically adds the corresponding shared database to */usr/local/tomcat/conf/context.xml*, using an appropriate driver available in the container. For an end-to-end scenario using this approach, see [Tutorial: Build a Tomcat web app with Azure App Service on Linux and MySQL](tutorial-java-tomcat-mysql-app.md).
4545

4646
These instructions apply to all database connections. You need to fill placeholders with your chosen database's driver class name and JAR file. Provided is a table with class names and driver downloads for common databases.
4747

@@ -377,46 +377,30 @@ az webapp deploy --resource-group <group-name> --name <app-name> --src-path <jar
377377

378378
::: zone pivot="java-jboss"
379379

380-
There are three core steps when [registering a data source with JBoss EAP](https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.0/html/configuration_guide/datasource_management): uploading the JDBC driver, adding the JDBC driver as a module, and registering the module. App Service is a stateless hosting service, so the configuration commands for adding and registering the data source module must be scripted and applied as the container starts.
380+
> [!TIP]
381+
> By default, the Linux JBoss containers can automatically configure shared data sources for you in the JBoss server. The only thing for you to do is add an app setting that contains a valid JDBC connection string to an Oracle, SQL Server, PostgreSQL, or MySQL database (including the connection credentials), and App Service automatically adds the corresponding shared data source, using an appropriate driver available in the container. For an end-to-end scenario using this approach, see [Tutorial: Build a JBoss web app with Azure App Service on Linux and MySQL](tutorial-java-jboss-mysql-app.md).
381382

382-
1. Obtain your database's JDBC driver.
383-
2. Create an XML module definition file for the JDBC driver. The following example shows a module definition for PostgreSQL.
383+
There are three core steps when [registering a data source with JBoss EAP](https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.0/html/configuration_guide/datasource_management):
384384

385-
```xml
386-
<?xml version="1.0" ?>
387-
<module xmlns="urn:jboss:module:1.1" name="org.postgres">
388-
<resources>
389-
<!-- ***** IMPORTANT : REPLACE THIS PLACEHOLDER *******-->
390-
<resource-root path="/home/site/deployments/tools/postgresql-42.2.12.jar" />
391-
</resources>
392-
<dependencies>
393-
<module name="javax.api"/>
394-
<module name="javax.transaction.api"/>
395-
</dependencies>
396-
</module>
397-
```
385+
1. Upload the JDBC driver.
386+
1. Add the JDBC driver as a module.
387+
1. Add a data source with the module.
398388

399-
1. Put your JBoss CLI commands into a file named `jboss-cli-commands.cli`. The JBoss commands must add the module and register it as a data source. The following example shows the JBoss CLI commands for PostgreSQL.
389+
App Service is a stateless hosting service, so you must put these steps into a startup script and run it each time the JBoss container starts. Using PostgreSQL, MySQL, and SQL Database as an examples:
400390

401-
```bash
402-
#!/usr/bin/env bash
403-
module add --name=org.postgres --resources=/home/site/deployments/tools/postgresql-42.2.12.jar --module-xml=/home/site/deployments/tools/postgres-module.xml
391+
# [PostgreSQL](#tab/postgresql)
404392

405-
/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgres",driver-class-name=org.postgresql.Driver,driver-xa-datasource-class-name=org.postgresql.xa.PGXADataSource)
393+
[!INCLUDE [configure-jboss-postgresql](includes/configure-language-java-data-sources/configure-jboss-postgresql.md)]
406394

407-
data-source add --name=postgresDS --driver-name=postgres --jndi-name=java:jboss/datasources/postgresDS --connection-url=${POSTGRES_CONNECTION_URL,env.POSTGRES_CONNECTION_URL:jdbc:postgresql://db:5432/postgres} --user-name=${POSTGRES_SERVER_ADMIN_FULL_NAME,env.POSTGRES_SERVER_ADMIN_FULL_NAME:postgres} --password=${POSTGRES_SERVER_ADMIN_PASSWORD,env.POSTGRES_SERVER_ADMIN_PASSWORD:example} --use-ccm=true --max-pool-size=5 --blocking-timeout-wait-millis=5000 --enabled=true --driver-class=org.postgresql.Driver --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter --jta=true --use-java-context=true --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker
408-
```
395+
# [MySQL](#tab/mysql)
409396

410-
1. Create a startup script, `startup_script.sh` that calls the JBoss CLI commands. The following example shows how to call your `jboss-cli-commands.cli`. Later, you'll configure App Service to run this script when the container starts.
397+
[!INCLUDE [configure-jboss-mysql](includes/configure-language-java-data-sources/configure-jboss-mysql.md)]
411398

412-
```bash
413-
$JBOSS_HOME/bin/jboss-cli.sh --connect --file=/home/site/deployments/tools/jboss-cli-commands.cli
414-
```
399+
# [SQL Database](#tab/sqldatabase)
415400

416-
1. Using an FTP client of your choice, upload your JDBC driver, `jboss-cli-commands.cli`, `startup_script.sh`, and the module definition to `/site/deployments/tools/`.
417-
2. Configure your site to run `startup_script.sh` when the container starts. In the Azure portal, navigate to **Configuration** > **General Settings** > **Startup Command**. Set the startup command field to `/home/site/deployments/tools/startup_script.sh`. **Save** your changes.
401+
[!INCLUDE [configure-jboss-sqldatabase](includes/configure-language-java-data-sources/configure-jboss-sql-database.md)]
418402

419-
To confirm that the datasource was added to the JBoss server, SSH into your webapp and run `$JBOSS_HOME/bin/jboss-cli.sh --connect`. Once you're connected to JBoss, run the `/subsystem=datasources:read-resource` to print a list of the data sources.
403+
---
420404

421405
::: zone-end
422406

0 commit comments

Comments
 (0)