自动重启weblogic 数据库连接池的WLST脚本



当数据库重启导致数据库连接丢失后, 不需要重启整个WebLogic Server , 而是可以仅重启数据源连接池就可以。该方法既可以
通过控制台执行, 也可以通过脚本的方式执行, 当WLS实例特别多是时候,建议用脚本执行,比较快。
如是ORACLE数据库,通过WLS的GRID LINK, GRIDLINK 类型的数据源应该是可以自动重连接的,连数据源重启动都不需要了。非ORACLE数据库只能采用普通的数据源,就可以采用下面的脚本:


admin_username = 'username'
admin_password = 'apssword'
admin_url = 't3://IP:PORT'
datasource_name = 'myDataSource'
connect(admin_username, admin_password, admin_url)
domainConfig()
serverList=cmo.getServers();
domainRuntime()
for server in serverList: 
        name=server.getName()
        print name
        if name != 'AdminServer' : 
                server_state_path = '/ServerLifeCycleRuntimes/'+name
                cd(server_state_path)
                serverState=cmo.getState()
                if serverState=='SHUTDOWN':
                        print 'ServerName: '+ name+', State: '+serverState + ', skip...'
                        continue
                dbs_path = 'ServerRuntimes/' + name + '/JDBCServiceRuntime/' + name + '/JDBCDataSourceRuntimeMBeans/' + datasource_name
                cd(dbs_path)
                objectArray = jarray.array([], java.lang.Object)
                stringArray = jarray.array([], java.lang.String)
                invoke('shutdown', objectArray, stringArray)
                invoke('start', objectArray, stringArray)
                print 'ServerName: '+ name+', State: '+serverState + ', restarted'
disconnect()

exit()



欢迎关注本人的微信公众号: 书生老徐

WebLogic生成的连接池配置文件通常是以XML格式存储的,其中包含数据库连接的敏感信息。为了保护这些敏感信息,你可以考虑对连接池配置文件进行加密处理。下面是一种常见的方法: 1. 使用WebLogic提供的加密工具对连接池配置文件进行加密。可以使用`weblogic.Encrypt`命令行工具来执行此操作。例如,假设你的连接池配置文件名为`jdbc.xml`,可以使用以下命令对其进行加密: ``` java weblogic.Encrypt jdbc.xml encrypted_jdbc.xml ``` 这将生成一个名为`encrypted_jdbc.xml`的加密后的配置文件。 2. 将原始的连接池配置文件备份,并将加密后的配置文件替换原始文件,以便在WebLogic中使用。 3. 在WebLogic服务器中配置正确的密钥存储文件。加密后的连接池配置文件需要使用密钥进行解密。你需要在WebLogic服务器中配置密钥存储文件,并将其与连接池关联。可以使用WebLogic控制台或WLST脚本来完成此操作。 在WebLogic控制台中,导航到"环境" -> "安全" -> "密钥存储",然后创建或导入一个密钥存储文件,并确保连接池与该密钥存储文件关联。 如果你使用WLST脚本,可以使用以下命令来配置密钥存储文件并与连接池关联: ```python connect('weblogic', 'password', 't3://localhost:7001') edit() startEdit() # 创建或导入密钥存储文件 createKeyStore('myKeystore', 'JKS', '/path/to/keystore.jks', 'keystore_password') # 将连接池与密钥存储文件关联 myConnectionPool = cmo.lookupJDBCSystemResource('YourConnectionPool') myConnectionPool.getJDBCResource().setKeyStores('myKeystore') save() activate() ``` 请确保将上述代码中的`weblogic`、`password`、`localhost:7001`和其他参数替换为实际的值。 通过以上步骤,你可以将WebLogic生成的连接池配置文件进行加密,并在WebLogic服务器中配置密钥存储文件以进行解密。这样可以保护连接池中的敏感信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值