Avatar of Eleven.Xu

by Eleven.Xu

Featured

欢迎关注OracleSeeker公众平台

九月 29, 2013 in 探索者故事

为更好地方便OracleSeeker关注者之间的沟通,以及更好地构建大家和几位博主之间的桥梁,现开通如下公众平台联系方式,欢迎大家加入/关注:

 

腾讯QQ群:41634312

微信公众帐号:oracleseeker-wx(微信号)/OracleSeeker(公众帐号)

新浪微博:OracleSeeker(http://weibo.com/oracleseeker

 

以后新发博文、消息通告、活动通知等信息均会通过上述公众平台及时发布,再次感谢大家一直以来对于OracleSeeker的关注与支持!

oam单点登录失败,页面报用户账户已锁定或禁用

八月 23, 2016 in Oracle 融合中间件

早上还没到公司,就有用户不断反馈说登录不了门户,报账户已锁定或禁用的错误,第一反应就是ldap那边可能有改动,导致用户认证失败,立马打电话给相关负责人,得到的反馈说ldap最近都没有什么改动,挺奇怪的

0B~O1G@I58WX{H{]M(MORKU

到公司立马看了下日志,发现了点有用的信息:

<oracle.oam.user.identity.provider> <OAMSSA-20086> <Locate user via a specific attribute failed for attr sn and value 00028098>

检查了下ldap的sn和oam这边的匹配关系,也没错的,然后查了下诊断日志,发现了如下异常:

Caused by: javax.naming.NamingException: LDAP response read timed out, timeout used:2000ms.; remaining name ‘dc=domain’

大概意思是ldap读取超时是2秒,如果在2秒内ldap服务器未给oam认证信息,则就会抛出异常,并返回认证失败的结果,

去查了下修改默认超时时间的方法,并重启服务,解决

修改默认超时时间步骤如下,

找到并打开< WLS domain>/config/fmwconfig下的oam-config.xml文件

找到配置的用户身份存储库里节点里添加如下参数:

<Setting Name="LdapReadTimeout" Type="xsd:string">5000</Setting>

即把读取超时时间改为5秒。

重启服务用户再次登录,没问题。

通过wlst查看weblogic明文密码

七月 1, 2016 in Oracle 融合中间件

如果weblogic密码忘了,可通过wlst找回,步骤如下:

运行wlst.sh脚本,执行以下语句:

domain = "/Users/HAND/.jdeveloper/system11.1.1.7.40.64.93/DefaultDomain"
service = weblogic.security.internal.SerializedSystemIni.getEncryptionService(domain)
encryption = weblogic.security.internal.encryption.ClearOrEncryptedService(service)
print encryption.decrypt("{AES}CVyERu+08QL1qCXNHaE6LYemWkWIBmBN5l/uA2SZsP8=")

其中domain值为安装的domain目录,"{AES}CVyERu+08QL1qCXNHaE6LYemWkWIBmBN5l/uA2SZsP8="为$domain/servers/DefaultServer/security/boot.properties里的加了密的密码

执行完毕后即会把解密了的密码打印出来,执行截图如下:

image

创建EO或VO Attribute默认的类不是oracle.jbo.domain的解决方法

五月 22, 2016 in Oracle 融合中间件

有时候在创建EO或者VO时,其Attribute对应的java类型不是oracle.jbo.domain包下面的类,需要手动进行修改对应到oracle.jbo.domain下的类,下图是修改后截图,

image

手动修改Attribute不是最终的解决办法,可以通过以下步骤将Type Map重新改回Oracle:
打开Model.jpx(命名根据实际不用而不同区别),找到<Attr Name="_jbo.TypeMapEntries" Value="java"/>,并且删除

然后关闭并重新打开应用,然后就能正常map了

修改后效果

image

使用linux日志管理工具来管理osb服务器日志文件

五月 21, 2016 in Oracle 融合中间件

场景:做一个OSB项目,生产环境每天至少有几十万次接口调用,因报文量大,数据库存储容量有限,也因早期接口问题较多,所以osb上的每个接口都会把接收到的数据打到log文件中(接口数据打印到log统一由模板实现),便于查找问题,这就导致集群上每台服务器每天的log大小都超过1g,甚至多的话一天一台服务器就有10多G的日志产生,而weblogic服务器中的日志配置不能对*.out类型的日志文件进行控制,且也不支持日志压缩,造成服务器硬盘空间浪费

     为此,我们找到了一种方法,就是使用linux自带的日志管理工具logrotate来管理osb服务器上的日志文件,实现步骤如下:

在目录/etc/logrotate.d/下创建文件osb_log

文件内容如下:

$DOMAIN/servers/*/logs/*.[o|l][u|o][t|g]  $DOMAIN/servers/*/logs/*.[o|l][u|o][t|g]?????
{
    daily
    rotate 30
   copytruncate
    compress
    delaycompress
    missingok
    dateext
    notifempty
    create 644 oracle oracle
    prerotate
        find $DOMAIN/servers/*/logs -type f  \( -iname ‘*.log*’ -o  -iname ‘*.out*’ \) -mtime +30|xargs rm -rf
        find $DOMAIN/servers/*/logs/  \( -iname ‘*.log?*’ -o  -iname ‘*.out?*’ \) -type f -size 0c  -mtime +1 | xargs  rm -rf
    endscript
    postrotate
        /usr/bin/killall -HUP rsyslogd
    endscript
}

保存即可,剩下的事交由系统去处理。

脚本实现的功能:每天把osb domain中的所有admin服务和受管服务下的log进行截断并压缩,同时清除30天前的日志记录

脚本适用环境:linux5.4及以上版本的操作系统,5.4以前的操作系统没经过测试(测试发现脚本日志文件地址的查找在linux5.4版本中支持正则表达式,而linux6.6的版本则只支持通配符方式)

效果:日志文件压缩率达到90%,记得一下子就腾出了50多G的硬盘空间出来

查看安装的webcenter版本

五月 20, 2016 in Oracle 融合中间件

做维护项目,如果需要查看webcenter安装的版本,在无文档、客户不能提供也找不到确认人情况下,只好靠自己来查了,目前知道的方法有2种:

方法一:通过数据库来查(需知道schema密码),步骤如下:

1、使用sys账号登录数据库,查询rcu创建的webcenter用的schema

select username
from all_users
where username like ‘%WEBCENTER%’;

image

2、登录查出来的schema:SRRC_WEBCENTER<!—more—>

然后执行下列sql:

select version from WC_REPOSITORY_VERSION;

image

查出来是11.1.1.7.0

 

方法二:通过查看patch信息获取版本号

登录安装webcenter环境的操作系统,进入webcenter安装目录:$FMW_HOME/Oracle_WC1

设置变量:export ORACLE_HOME=/u01/Oracle/Middleware/Oracle_WC1

然后执行$ORACLE_HOME/OPatch/opatch lsinventory

查看结果如下:

image

查出webcenter版本为11.1.1.7.0,和数据库查出的结果一致