当数据库重启导致数据库连接丢失后, 不需要重启整个
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 Server , 而是可以仅重启数据源连接池就可以。该方法既可以通过控制台执行, 也可以通过脚本的方式执行, 当WLS实例特别多是时候,建议用脚本执行,比较快。如是ORACLE数据库,通过WLS的GRID LINK, GRIDLINK 类型的数据源应该是可以自动重连接的,连数据源重启动都不需要了。非ORACLE数据库只
ORA-27102: out of memory
Linux-x86_64 Error: 12: Cannot allocate memory
Additional information: 26
Additional information: 327684
Additional information: -1610612736
进入某个
连接
池
配置页,进入“
连接
“页,点击高级选项的”show“显示高级选项。
指定 "测试频率" 并
启
用 "测试保留的
连接
"、"测试创建的
连接
" 和 "测试释放的
连接
"。
测试频率(Test Frequency): 60 秒
一、TCP/IP网络模型
计算机与网络设备要互相通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要实现确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。而我们就把这种规则称为协议。
项目需要额外的一个数据源,数据源配置在
weblogic
上,配置好了之后测试也没有问题。
之后发现数据源命名不好,删除掉了
重
新建了一个数据源,测试了下新配的数据源也没有问题。
我部署项目到了
weblogic
上后发现找不到数据源,然后用尽各种办法都不行。
一直报错找不到名称为 xxx的数据源。
javax.naming.NameNotFoundException: Unable to reso
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export
WEBLOGIC
_HOME=/opt/
weblogic
#
启
动命令
nohup $
WEBLOGIC
_HOME/wlserver_10.3/server/bin/start
WebLogic
.sh > /dev/null 2>&1 &
# 地址和端口号
HOST=localhost
PORT=7001
# 等待
Weblogic
启
动完成
tries=0
while true
response=$(curl --silent --write-out %{http_code} --output /dev/null http://$HOST:$PORT/console)
if [ "$response" == "302" ]; then
echo "
Weblogic
is started!"
break;
tries=$((tries+1))
if [ $tries -ge 30 ]; then
echo "
Weblogic
failed to start!"
exit 1
sleep 10
exit 0
在此
脚本
中,我们先设置了Java环境变量和
Weblogic
根目录。然后使用nohup和&运算符在后台
启
动了
Weblogic
服务器。接下来使用curl工具每10秒访问
Weblogic
控制台地址,检查
Weblogic
是否
启
动完成,如果在30次尝试后仍然不成功,则退出
脚本
。最后,根据情况返回0或1作为退出状态。