momo zone

调核人的blog

Monthly Archives: 七月 2009

java 版本检测,很一刀切

最近发现一些服务器端的软件会强制检测jre版本,通过注册表查找,一旦发现没有对应的key 就不能安装或运行, 实在是一刀切的做法. 其实最新的的jre6 运行1.2,1.4,1.5 的程序都没有什么问题. 不知道开发商是怎么想的. 贴下目前导入的jre版本的注册表key(已重定位JRE信息),已备后用.
 

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeJavaSoft]

[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeJavaSoftJava Plug-in]

[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeJavaSoftJava Plug-in1.4.2_06]
"JavaHome"="E:\Java\j2re1.4.2_06"
"UseJava2IExplorer"=dword:00000000
"HideSystemTrayIcon"=dword:00000000

[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeJavaSoftJava Plug-in1.6.0_13]
"JavaHome"="E:\Java\jre6(X86)"
"UseJava2IExplorer"=dword:00000001
"UseNewJavaPlugin"=dword:00000001
"HideSystemTrayIcon"=dword:00000001

[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeJavaSoftJava Runtime Environment]
"Java6FamilyVersion"="1.6.0_13"
"CurrentVersion"="1.6"

[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeJavaSoftJava Runtime Environment1.4]
"JavaHome"="E:\Java\jre6(X86)"
"MicroVersion"="0"
"RuntimeLib"="E:\Java\jre6(X86)\bin\client\jvm.dll"

[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeJavaSoftJava Runtime Environment1.4.2_06]
"JavaHome"="E:\Java\jre6(X86)"
"MicroVersion"="0"
"RuntimeLib"="E:\Java\jre6(X86)\bin\client\jvm.dll"

[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeJavaSoftJava Runtime Environment1.5]
"JavaHome"="E:\Java\jre6(X86)"
"MicroVersion"="0"
"RuntimeLib"="E:\Java\jre6(X86)\bin\client\jvm.dll"

[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeJavaSoftJava Runtime Environment1.6]
"JavaHome"="E:\Java\jre6(X86)"
"RuntimeLib"="E:\Java\jre6(X86)\bin\client\jvm.dll"
"MicroVersion"="0"

[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeJavaSoftJava Runtime Environment1.6.0_13]
"JavaHome"="E:\Java\jre6(X86)"
"MicroVersion"="0"
"RuntimeLib"="E:\Java\jre6(X86)\bin\client\jvm.dll"

[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeJavaSoftJava Runtime Environment1.6.0_13MSI]
"JU"="1"
"OEMUPDATE"=""
"MODE"="C"
"FROMVERSION"="NA"
"KERNEL"=""
"PRODUCTVERSION"="6.0.130"
"INSTALLDIR"="E:\Java\jre6(X86)\"
"SYSTRAY"="1"
"EULA"="0"
"IEXPLORER"="1"
"MOZILLA"="0"
"JAVAUPDATE"="1"
"AUTOUPDATECHECK"="1"
"AUTOUPDATEDELAY"=""
"ImageCkSum"="591146257"
"FullVersion"="1.6.0_13-b03"

[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeJavaSoftJava Update]

[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeJavaSoftJava UpdatePolicy]
"EnableJavaUpdate"=dword:00000001
"NotifyDownload"=dword:00000000
"NotifyInstall"=dword:00000001
"UpdateSchedule"=dword:00000005
"Frequency"=dword:010d0000
"ScheduleId"="S-1-5-21-842925246-1614895754-682003330"
"EnableAutoUpdateCheck"=dword:00000000

[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeJavaSoftJava Web Start]
"CurrentVersion"="1.6.0_13"

[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeJavaSoftJava Web Start1.6.0_13]
"Home"="E:\Java\jre6(X86)\bin"

[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeJavaSoftPrefs]
"com.citrix.amclaunchcmd"="C:\Program Files (x86)\Common Files\Citrix\Access Management Console – Framework\CmiLaunch.exe"

 

 
Advertisements

Citrix ASC 中无法create site 的问题解决

在一台Hyper-V 的server上安装测试Citrix MPS 4.0 .
起初还算顺利,AD(这个省掉了,比较麻烦)->终端服务器->终端服务器授权->MetaFrame Access Suite Liscensing->Access Suite Console->Web Interface->MetaFrame Presentation Server –>Presentation Server Console->Document Center
都装完后可以发布APP,但无法发布logon Web 。
起初以为是iis 的问题,然后卸掉Web Interface再装上,就这样试了多次,还是无效。
然后怀疑是liscens的问题,接着去找可以用的liscens,不过这样也是有很大的疑问,难道没有可用的interprise liscens就不能继续配置了?应该不会,这种可能性先排除。
最后我怀疑是.net库的问题,因为MPS好像是基于MMC的,而win2003的MMC很多是基于.NET的,而且PRD Citrix 也没有安装.net2.0。因为有vs08 的关系,这里安装了.net 1.0和2.0(不用想了,和java1.0和1.2 一样,差别非常大,很多类都重写了)。我本想试试把2.0 卸掉,但这台hyper-v上运行了很多MS的程序,卸掉恐怕都跑不起来了(所以我感觉任何中间层开发技术都是DLL地狱,换汤不换药)。现在关键问题就是如何强制MMC 运行于.net 1.0 之上或能让MPS运行于.net2.0:
第一种方法官方有介绍(看来我猜对了):
第二种方法是升级web interface 至4.5以上:
这种应该是首选,下载Web Interface 5.0.1 for Windows,安装吧。不过这个需要装J#.NET2.0 …… OTL ,不打算再折腾了,用第一种方法算了。
 
 
 

NiConnect Error Code

#define NIEINTERN -1 /* NI-internal error */
#define NIEHOST_UNKNOWN -2 /* Host name unknown */
#define NIESERV_UNKNOWN -3 /* Service unknown */
#define NIESERV_USED -4 /* Service already used */
#define NIETIMEOUT -5 /* Time limit reached */
#define NIECONN_BROKEN -6 /* Connection to partner broken */   */
#define NIETOO_SMALL -7 /* Data range too small */
#define NIEINVAL -8 /* Invalid parameters */
#define NIEWAKEUP -9 /* Wake-Up (without data) */
#define NIECONN_REFUSED -10 /* Connection setup failed */
#define NIEPING -11 /* PING/PONG signal received */
#define NIECONN_PENDING -12 /* Connection to partner via */
                            /* NiRouter not yet set up */
#define NIEVERSION -13 /* Invalid version */
#define NIEMYHOSTNAME -14 /* Local hostname cannot be found */
#define NIENOFREEPORT -15 /* No free port in range */
#define NIEMYHOST_VERIFY -16 /* Local hostname invalid */
#define NIESNC_FAILURE -17 /* Error in the SNC shift */
                           /* in the saprouter ==>           */
#define NIEOPCODE -18 /* Opcode received */
#define NIEQUE_FULL -19 /* queue limit reached, next */
                        /* package not accepted */
#define NIETOO_BIG -20 /* Requested package too large */
SAProuter-internal errors:
#define NIEROUT_HOST_UNKNOWN -90 /* Host name unknown */
#define NIEROUT_SERV_UNKNOWN -91 /* Service unknown */
#define NIEROUT_CONN_REFUSED -92 /* Connection setup failed */
#define NIEROUT_INTERN of -93 /* NI-internal errors */
#define NIEROUT_PERM_DENIED -94 /* Connect from source to */
                                /* destination not allowed */
#define NIEROUT_CONN_BROKEN -95 /* Connection terminated */
#define NIEROUT_VERSION -96 /* Invalid client version */
#define NIEROUT_CANCELED -97 /* Connection cancelled by */
                             /* administrator */  
#define NIEROUT_SHUTDOWN -98 /* saprouter shutdown */
#define NIEROUT_INFO_DENIED -99 /* Information request refused */
#define NIEROUT_OVERFLOW -100 /* Max. number of clients reached */
#define NIEROUT_MODE_DENIED -101 /* Talkmode not allowed */
#define NIEROUT_NOCLIENT -102 /* Client not available */
#define NIEROUT_EXTERN -103 /* Error in external library */
#define NIEROUT_SNC_FAILURE -104 /* Error in the SNC shift */

Python学习中

为了应对部门某领导的要求,开始学习Python (动机不纯阿,不过也没办法). 尽管预期影响不大,这里都是MS的东东,搞一个GPL下的脚本语言还不如学学MS 的power shell实用.好在我喜欢python ,之前一直都在用,可以有压力的情况下学学也不错.
 

IDES Remote enqueue Server部署

之前一直不清楚SAP IDES 中第二个instance(sysnr:01) 是做什么的,尝试停掉该实例仍然不影响登录和操作.

instance 00 process list:

 

instance 01 process list:

 

可以看到instance 00 提供的功能多些,但instance 01 提供enqueue server (其实instance 00) 也提供,但不会单独显示.

enqueue server 就是一个管理SAP LOCK table 和实现SAP LOCK CONCEPT的一个服务,说白了就是管理诸如SM12 中看到的内容(当然它还负责lock table数据的备份和还原,注意这些数据不是放在DB里而是放在SAP instance的工作目录中)

这里在instance 01中提供enqueue server 是SAP High Availability (BC-CCM-HAV)中的内容,如果enqueue server 是部署在单独的一台server 上则称为Standalone Enqueue Server :

1.单点故障后将影响AP server 所有服务 

2.将enqueue server 独立后: 

 上面的情况还支持Enqueue Server mirror host

说了半天接下来要把SAP IDES 中第二个instance(sysnr:01)的Enqueue Server 利用起来: 

很简单,首先修改instance 00的instance profile :usrsapIDESYSprofileinstanceProfile,加入/修改 :

enque/serverinst=01
enque/process_location=REMOTESA

 

然后停掉instance 00 ,并在service  中停掉对应的服务,然后重开就能读到新的instance profile了.

最后去验证.验证的方法是只开instance00 ,登录SAPLOGON 会发现输入账号密码无响应(无法call lock table 嘛) ,然后instance01起来 ,立刻就能进入了.SM21 看下: 

看到"loss of lock table" ,说明刚才确实失去了enqueue Server 的联系.

 

Win7 不被关注的新特性–VPN新特性

在Windows Server 2008 SP2 上(更别提更早的Vista和老掉牙的XP) 连接VPN时如果不选中使用“use default gateway on remote network”那么连接成功后需要手工设定路由才能同时连接隧道网络和本地网络,比较麻烦,而且不是每个人都会设定的。现在Win7 全面改善了这点,更加傻瓜了:
 
 看上面的图,明显可以看到172.20.0.0 被加入到了路由表。
 
 

Michael Jackson 一路走好

Michael Jackson 的消息已经过去好几天了, 具体原因还在调查中.
MJ是我喜欢的为数不多的欧美歌手之一,谈不上太痴迷,但他那具有穿透力的歌声足够超越猫王了.
 
人已经走了, 贴些照片怀念一下吧…