求WSO2 EI 7.1.0 JNDI配置示例 配置名称可在DB report mediator复用
WSO2 EI 可复用JNDI数据源配置示例(适配DB Report Mediator)
1. 配置JNDI数据源
打开<EI_HOME>/conf/datasources/master-datasources.xml配置文件,在<datasources>根节点下新增如下数据源配置,其中jndiConfig下的name参数就是后续可全局复用的JNDI标识:
<datasource> <name>BusinessDB</name> <description>业务库公共JNDI数据源</description> <jndiConfig> <name>jdbc/BusinessDB</name> <!-- 此处为可复用的JNDI名称 --> </jndiConfig> <definition type="RDBMS"> <configuration> <url>jdbc:mysql://localhost:3306/business_db?useSSL=false&serverTimezone=Asia/Shanghai</url> <username>db_user</username> <password>db_password</password> <driverClassName>com.mysql.cj.jdbc.Driver</driverClassName> <maxActive>50</maxActive> <maxWait>60000</maxWait> <testOnBorrow>true</testOnBorrow> <validationQuery>SELECT 1</validationQuery> <validationInterval>30000</validationInterval> </configuration> </definition> </datasource>
配置完成后将对应数据库的JDBC驱动包放入<EI_HOME>/lib目录,重启WSO2 EI服务,启动日志中出现Successfully deployed JDBC datasource: BusinessDB即代表JNDI数据源注册成功。
2. 在DB Report Mediator中复用JNDI名称
配置DB Report Mediator时无需重复填写数据库连接地址、账号密码、驱动类等参数,直接引用上述配置的JNDI名称即可,示例配置如下:
<dbreport> <connection> <jndi>jdbc/BusinessDB</jndi> <!-- 直接引用已注册的JNDI名称 --> </connection> <statement> <sql>INSERT INTO request_log (request_id, operate_time, status, remark) VALUES (?, ?, ?, ?)</sql> <parameter expression="$ctx:requestId" type="VARCHAR"/> <parameter expression="get-property('SYSTEM_DATE', 'yyyy-MM-dd HH:mm:ss')" type="VARCHAR"/> <parameter expression="$ctx:responseStatus" type="VARCHAR"/> <parameter expression="$ctx:errorMsg" type="VARCHAR"/> </statement> </dbreport>
配置注意事项
- JNDI名称需全局唯一,不可与现有数据源的JNDI配置重名
- 数据源连接参数修改后需要重启WSO2 EI服务生效
- 同一JNDI名称可在DB Report Mediator、DB Lookup Mediator等所有支持JNDI的WSO2 EI组件中重复调用
内容的提问来源于stack exchange,提问作者Ajay
相关产品推荐
相关产品推荐

