相关疑难解决方法(0)

以编程方式修改 JNDI 连接池

我在项目中使用 Apache Tomcat JDBC 连接池库并相应地配置了 context.xml 文件。我的应用程序实例需要在多个位置运行,但应用程序上的负载会有所不同,因此我想根据运行时特定实例的客户大小修改 maxActive 大小和其他一些属性。

  <Context path="/abc"
             docBase="abc"
             debug="5"
             reloadable="false"
             crossContext="true">
       <Resource name="jdbc/abc"
          auth="Container"
          type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
          driverClassName="xxxxx"
          url="xxxxxxx"
          username="xxxxx" password="xxxxxx"
          maxActive="20"
          initialSize="0"
          ...
          />
     </Context>
Run Code Online (Sandbox Code Playgroud)

java mysql tomcat connection-pooling jdbc

6
推荐指数
1
解决办法
632
查看次数

在 tomcat catalina.properties 中注入环境变量 [Kubernetes]

我正在使用 kubernetes 进行 Web 应用程序部署。

  containers:
  - name: myapp
    image: tomcat8-jre8:latest
    imagePullPolicy: Always
    env:     
    - name: DATABASE_HOST
      valueFrom:
        secretKeyRef:
          name: my-secret
          key: external.database.host
    - name: DATABASE_USER
      valueFrom:
        secretKeyRef:
          name: my-secret
          key: external.database.user
    - name: DATABASE_PASSWORD
      valueFrom:
        secretKeyRef:
          name: my-secret
          key: external.database.password
Run Code Online (Sandbox Code Playgroud)

我还将 tomcat JNDI 与自定义 server.xml 和 catalina.properties 一起使用

 <Resource factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
            name="jdbc/mysource" 
            auth="Container" 
            type="javax.sql.DataSource" 
            driverClassName="org.postgresql.Driver" 
            url="jdbc:postgresql://******" # secret url
            username="${database.user}"      
            password="${database.password}" />
Run Code Online (Sandbox Code Playgroud)

我尝试将新属性放入 catalina.properties

### catalina specific configuration
database.user = ${DATABASE_USER}              
database.password = ${DATABASE_PASSWORD}   
Run Code Online (Sandbox Code Playgroud)

server.xml 可以很好地读取属性,但无法解析环境变量 ${DATABASE_USER} 和 ${DATABASE_PASSWORD}

server.xml …

tomcat catalina kubernetes kubernetes-secrets

5
推荐指数
2
解决办法
8147
查看次数