2009-11-12 20:03
07年在南京的时候就研究过.还好当时保留了文档.昨天准备搭建一个测试环境作性能测试,就重新尝试了一下.今天用了一天的时间终于弄好了.
其实过程倒不复杂 中间忘了一个关键的步骤 结果尝试了很多次不成功 在此标记一下.
当然防火墙上的必要端口都要打开 昨天和老孙弄了一下午防火墙 终于穿了过去.中间图片太多 上传不方便
完整图文暂时没地方放 google docs的https被盾了 访问也不方便 在此就贴一下文本
WebSphere集群下应用发布
1集群的建立
1.安装WebSphere ,概要表创建向导 --> 创建Deployment Manager概要表 定义一下概要表名(非必须) 例如 默认为Dmgr01 -->选择概要表所在目录 节点名 主机名 单元名(任意,可默认) 记住SOAP端口 默认为(8879) .这样就创立完成
2.安装节点,在节点服务器上运行概要创建向导--> 创建定制概要表 -->选择DeployManager主机名和端口 填上1中安装DeployManager的主机名或ip ,端口(SOAP端口)
运行后节点会自动连接deploymanger若连接未成功 可以在 概要的安装的目录运行
addNode.bat ip port的形式手动添加.
重复2中的步骤添加节点.
部署节点之后启动DeployManager的控制管理器,
从控制台登录 默认为 http://localhost:9060/ibm/console
在管理控制台中,[服务器]à[集群],点击新建集群,命名任意:
在集群成员中,添加成员server1和server2,节点为bbssdfsdfNode02和bbssdfsdfNode03(添加一个,点击一次应用):
(权重越高,分配的请求越多)
集群下发布应用
和单击发布应用一样 在控制台 发布程序 发布选择服务器是选中集群发布.
然后,应用后确定,保存。
数据源的配置
在ibatis中数据源可选通用的jdbc数据源和 jndi数据源.
jdbc通用数据源在 database.properties中配置好所用的驱动和sql-map-dao.sql中默认配置好的即可 在应用服务器中不需要专门配置.
使用jndi数据源在database.properties中配置好jndi名称即可.然后在web服务器中配制好相应的jndi
在WebSphere中配置jndi
1) 通过 http://localhost:9060/admin 登陆控制台窗口,点击 "Resource",再点击 "JDBC Provider";
点击 "Apply";
点击 "Data Source";
单击 "New",在 "Name" 中输入 "DB2ConnectionPool Test",在 "JNDI Name" 中输入 "jdbc/DB2ConnectionPool";
在 "Database Name" 中输入 "TestDB",在 "Server Name" 中填入 IBM DB2 所在的机器的地址,在 "Port" 中填入 IBM DB2 运行时监听的端口,一般为默认 50000;
点击 "Apply";
在程序中使用对应的jndi连接数据库即可
IBM Http Server 安装
安装IBM Http Server: C:\Program Files\IBM HTTP Server,稍后会使用到,安装位置任意,然后安装类型选择:典型,然后会注册两个服务,输入启动的用户名和密码:
执行安装,安装完成后,会有个插件安装的checkbox:去掉:
启动部署管理单元:
startManager –profileName dgmr
在部署单元中配置HTTP SERVER的信息。
(集群中的概要表不能单独启动)
在[系统管理]---[节点]中添加一个[非受管的节点]
新建Web Server:
下图中的服务名称必须是[IBM HTTP Server 6.0],插件还没有安装,先写入路径(稍后安装插件需要安装在此目录中):
添加管理属性:(使用之前创建的用户名和密码)
一直点下一步,直至完成,然后保存。
安装Plugin:Web服务器类行选择IBM HTTP Server V6。
本地指DGMR与WEB SERVER在同一机器上:
与在WAS中添加WEB SERVER时设置的路径一致:
在管理控制台中选择生成配置文件:将生成的路径粘贴在下图中位置:
然后开始安装插件。安装完成后,退出。
启动服务器是 依次启动Deploy Manager 各节点代理 http server代理
登陆Web 控制台 启动集运 web 服务器 即可
关闭时 倒过来执行
发布程序时同集群下发布 复选框选中 集群和webServer即可.
|
2009-11-09 12:00
这边的网络情况比较复杂,公用的代理服务器是用的二级代理连北京的一台机器,其实也不方便.加上老孙配的时候没允许socks, term用http代理上貌似一直被截断,具体原因未知,可能是代理的问题.上午有空的时候研究了一下ssh代理转发 加上多级代理终于上来了.
具体的就是 在putty中配一个tunel 端口随便 选 dynamic 具体可以看这里 http://www.chedong.com/blog/archives/001246.html
然后本地起 sockscap调度所有的代理 在sockscap中开cterm cterm再配置使用北京的socks代理 这样折腾下来终于能连上了 ,上个网也真不容易 辗转了上千公里 |
2009-11-07 19:13
用来代理上网的windows2003机器远程登录连接数超过最大限制了,机器上设置也有点问题,导致连续几天都远程登录不上.机器在北京 而且是一台虚拟机,重启的话找人很麻烦.研究了一下 觉得可以通过特殊途径让它重启. 首先使用强大的 shutdown 命令
先是尝试了 shutdown /i 出来的管理界面添加远程机器 在本地试了一下貌似权限有限制.找了一下 发现也没有添加验证的地方,肯定是不行了.后来看到了有 建立ipc空连接的方法 本地测试通过 当然 首先要有administrator密码
net use \\rmouteaddr\ipc$ "yourpasswd" /u:"administrator"
shutdown -r -m\\rmouteaddr -t0 -f
这样测试通过,
在另外一台机器上测试的时候发现 ipc连接不能建立 检查了一下 发现 使用net use建立ipc连接需要
启动机器上的 server 和 workstation服务.
这样 当远程机器不能远程登录的时候也可以通过 ipc来重启机器
登上了之后当然就是这事用户连接共用了 这样就不容易出现连接数超过限制了
|
2009-11-05 23:51
最近在研究一些开源项目,感觉到开源的项目确实不好管理.第一个项目推行的是模块化管理,一个项目分成十几个子模块 用maven管理的 按照文档来 用了2晚上才把整个项目的开发环境搭建好,中间的过程就不说了确实很复杂,顺便了解了一下maven.但是跟郭交流的时候就有点麻烦了,用了很多天才把开发环境搭建好.由于项目确实很复杂分析代码的时候让人头晕.加上新的版本跨度比较大,最后不得不放弃.换了第二个项目,分2个工程 core和应用.core用的是maven 应用用倒是直接用ant管理.这次倒比较顺利 用了一晚上就搭建好了开发环境.用了一天的时间也让郭的环境弄好了.
刚看到有人发问争论各种管理工具优虐,有个人提到了如想的场景
为项目打个war包,其中properties要做转码、不需要的class要过滤掉、tld要放到metainfo里、构建序号加1、在页脚做个标记……
把项目中的通用组件打成jar包
跑一边单元测试并生成报告
新来了一个同事,请在一小时内为其搭建好开发环境
根据经验发现 如果是经验丰富的同事一个小时或许可以搞定 但是如果完全是新手的话估计就比较麻烦了.
也许这就是进化吧,也许就是项目越大越不容易管理了吧
决定了 下个项目使用maven了 顺应潮流了
|
2009-11-02 15:33
前天出现一个诡异的bug,就是extjs日期控件在10月31号这天不能选择9月份这个月份(YM格式),找了好久没有什么头绪,分析了一下 应该是和时区 和日期计算的错误,他们要演示系统 时间也来不及修改 就修改了本机时间为29号.暂时没啥问题了
后来芳芳测试的时候发现了一个问题,就是程序的校验是JavaScript校验的,取的是本地日期,修改了系统时间引发的问题就是校验通过不了.()后来检查了一下代码发现自己竟然在后台做了一下校验 修改的时候检查了一下当前日期.现在看来当时自己真是英明神武.记得当初当初同事还在旁边说这样是不是有点多此一举,现在看来当时随手的一句话其实很重要,很多人认为前端验证之后后台就可以少很多工作,现在看来 很多关键的验证还是要在后端验证一下.良好的习惯还是很重要 |
2009-10-30 11:47
1 sql中的字符串替换 sybase环境
sybase的str_replace 有个比较恶心的问题 就是 str_replace 之后 会在远处加上一个空格,和老孙研究了一下 开始的时候用 str_repalce(colname,'替换内容','a'||char(8)) 这样在shell下不会显示a但是 length还是会比正常的多2位 后来老孙想到了一个比较nb的方法 虽然很山寨 但是确实管用
直接 str_repalce(colname,'替换内容',char(-1))替换一个不存在的字符就行了.
2 java代码中的正则表达式替换.
起因还是sybase 设置区分字段大小写,数据库字段更新了之后 要同步更新dao.xml中的字段映射
想了一下
主要是 将 AbcdEfg 这样的字符替换成 abcdefg 小写 同时不能替换其它正常的字段 比如 abcdEfg
研究了一晚上 没啥有效的办法 匹配倒不是什么问题 主要的问题是怎么把匹配的内容转换成小写
研究了一下 java下的 RegEx没什么方便的办法
后来终于找到了一个比较简单的方法
使用 apache 的
import org.apache.oro.text.perl.Perl5Util;
支持用unix下的shell语法
String str=" abc Def test a.EefreGfdfd"
Perl5Util plutil = new Perl5Util();
str= plutil.substitute("s/([\\.,\\t, ,\"][A-Z])([a-z,A-Z]+)/\\L$1$2/g" , str);
替换成功
说明一下 \L小写 \E 大些
瞬间解决
正则表达式真的很强大 就是比较难懂一点
|
2009-10-19 23:38
今天下午和郭讨论了一下,看来最近有有事干了.下了gwt 开发环境.研究了一下demo,看了一下做简单的应用确实比较快 效果还行.感觉速度还是有点慢,当然这东西不好说.这个月的事情看来真的很多……
简单的说一下过程 直接在update manager里面添加链接 下载gwt插件 然后就是new gwt project了.测试添加了一个按钮,发现中文还是有点问题.
在 *gwt.xml中加入
<inherits name='com.google.gwt.user.User'/>
<inherits name='com.google.gwt.i18n.I18N'/>
将项目的编码修改为utf8 就正常了
明天有空的话就研究一下 JDO 这样一个完整的gae应用就诞生了 |
2009-10-17 23:37
之前我们系统的第一个版本用的是struts1配合部分直接servlet扔出html代码.配合前端部分jsp 有点就是页面存数据库 维护方便 .开发效率还行 缺点也很明显 生成的代码局限很多,而且全扔给后台效率还是有些不行 .值使用基本标签.
第二个版本使用了xml模板解析,在第一个版本上的改进,但是生成原理还是一样,开发倒是方便了 复制粘贴比数据库方便 维护性一般,最重要的就是报表系统是基于这个开发的,目前看来对于简单报表这种形式无疑是最方便的.不得不佩服一下郭呀.采用了局部ajax的方式,但是还是后台扔html代码 用的方式也比较山寨 直接替换串.同样没有解决第一个版本的问题.
最近接触了一下基于extjs的标签,觉得比较方便的就是界面比较简单.虽然标签目前还不大完善,但是照这个思路还是很有前途的,最方便的就是比较灵活(这个是双刃剑),缺点也比较明显 标签解析的时候还是比较慢,同时最大的问题还是团队熟悉程度,代码多了不规范的东西就多了.最近看代码有感,JavaScript可读性确实差了点.后台环境已经搭建成功了 现在的工作量就是把常用标签全部实现一遍,最好直接兼容以前代码.出一个转换器.工作量不小.最大的问题就是一个人干活没啥动力.不过现在时间也不多了 争取在年底前完成.今天重构了一下国庆节前些的代码 很失望 代码还是惨不忍睹呀,自己都不像改了 写代码还是要经验呀 |
2009-10-10 22:31
发现自己变了,以前很激进,什么软件和技术 都尽量用最新的. 但是最近发现自己太保守了.说好听点是保守 难听点固步自封.刚参加工作的时候还很有激情,现在和别人讨论的时候经常说No.也许这也是一种策略,但是很多时候说No了最后还是要实现的.当初刚上班的时候没经验,根本就不敢随便说No,但是发现现在养成了这个不好的习惯.虽然有各种各样的实际原因(工作量问题),但是其本质还是自己怕麻烦.
最近经常碰到这样的场景,和人讨论工作上的事情的时候,经常说No.虽然也有事由于各种原因的限制,但是大多数应该还是自己怕麻烦不敢去尝试的原因.又得时候等弄完了才发现其实没有想象中的复杂.有时候甚至是抱着抵触的情绪.但是事实证明 绝大多是情况下自己试错的.抱着这样的态度 研究了 sturts2 extjs 等 发现远比想象中方便,看来学习确实是一辈子的事情. |
2009-10-07 03:15
昨天晚上睡不着 就想着更新了一下系统 结果登录之后老是提示 setlocale出错
Cannot set LC_MESSAGES to default locale: No such file or directory
然后 locale -a 也是正常的
然后 locale-gen了一把 貌似也没什么问题 但是就是不正常
然后 google了一下 使用下面的命令就行了
localedef -v -c -i en_US -f UTF-8 en_US.UTF-8
暂时解决了问题
过了一会 觉得还是没找到问题的根源 查看了一下 /etc/locale.gen 文件 发现下面的 en_US.UTF-8 写错了
汗一个 都几个月了还没有发现 重新 locale-gen一下 就正常了 |
2009-09-21 11:30
今天业务人员测试的时候发现一个bug
看了一下 是由于下面的代码
其实很简单的问题 没想到还会犯这样的错误
var s='4';
if(s='2'){
alert('竟然会这样');}
else{
alert('真的错了');}
=============================
前天检查lb代码的时候又发现了一个错误
var t=0
if(t=='')
{alert('不可能')}
不可能的事情真的发生了 |
2009-09-17 21:32
其实需求很简单,就是往数据库中插入null值.顺带修改一下sqlmap中的一些映射.一般也就用ibatis自己的isNotEmpty标签判断一下.前一段时间他们问我的时候就这样告诉的 并且也正常工作. 但是今天我自己试的时候插到数据库中一直出错 由于字段比较多有60多个 只能逐步尝试了 昨天晚上弄了一晚上都没什么头绪 今天继续弄 还是没发现.中间为了测试方便 还学习写了一个junit的测试文件测试.结果发现 当字段比较多的时候 用 isNotEmpty标签会出现问题,插入数据库的同时会报 JZ006: Caught IOException: java.io.IOException: JZ0SL: Unsupported SQL type 0 删除一些非必填字段后正常.让人很恼火到现在都让人摸不着头脑 怀疑是数据库设置问题,但是没法证实加上这几天远程数据库一直不很正常.调试很不方便 .后来老孙看了之后帮忙解决了 使用了数据库的ifnull函数来实现.同时惊奇的发现 sybase和db2都支持这种方言.
今天最大的收获是发现写测试代码的强大 以前都是起server手动点.还有就是反射很强大 一个变态的model有60多个setter 用junit的时候 开始的时候尝试一行行的手写setter,后来想起以前用过的反射很强大,用了几分钟直接一个循环60多个set代码直接就出来了,确实很强大.看来确实是要告别那些刀耕火种的日子了.以前觉得测试对于写代码没啥作用 毕竟编码的时候其实就是半个测试的过程.用过之后才发现测试还是很不错的,TDD还是有点道理的
发现自己一直有偏见,也许是观念的问题吧,一直希望简单和通用并且追新,所以写代码的时候都尽量用最通用的方法.前几天在移植数据库中就发现了一些问题,都是由于数据库方言的问题,一些平台相关的函数引起的.碰到一个问题 我最新想到的使用java代码解决,老孙刚好相反,尽量用数据库sql解决.我们在一起合作 刚好互补,跟他刚好多学习学习数据库技术.
|
2009-09-04 20:27
之前接触JavaScript比较少 自从春节的时候写了点简单的JavaScript之后就没怎么动了.中间想好好的看看jQuery,结果到现在的项目使用Extjs.使用的现在使用版本是extjs的2.0版 封装了自己的框架.很多功能都没有实现,特别是事件触发和加载这一块屏蔽了很多方法.为了解决开发中遇到的一些问题,只能自己慢慢摸索了,中间折腾了一些问题,才逐渐了解到extjs的一些实现方法.同时也学习了一些基本的JavaScript语法.其中eval语法比较有意思,总算见识了脚本语言的强大,利用这个功能实现了这几天一直折腾的问题.同时发现最好的学习方法还是折腾呀,不折腾不知道 折腾才发现这么多问题.过一段时间好好整理最近的一些经验和教训 |
2009-09-02 10:57
自从装了firefly这个垃圾软件后 右键菜单就变得很慢. 但是也没办法,干活要用的.一直没找到什么解决办法.一直就这么忍了.昨天晚上实在是受不了了.找了很多地方.找的大部分都说要写在一个intel 的驱动 但是我机器上没有intel的玩意. 后来突然想到 既然是右键的问题 那就从右键开始找.果然 在 HKEY_CLASSES_ROOT\*\shellex
下找到了罪魁祸首了 删除下面的firefly 和一些无用的东西后果然快多了 右键菜单瞬间出来了 |
2009-08-22 16:44
一直使用ie开发 因为所经历的系统都是首要兼容ie6.0的 所以这么多年来 ie一直都没有换过
虽然自己浏览使用其他的浏览器 但是 ie日常中还是要用一些的.现在越来越发现ie跟不上形式了.
最近在用Extjs开发.之前没怎么接触过,还不是直接用Ext,中间被封装了一层,加上文档缺乏.所以很多时候让人很无语.
比如 简单的页面 加载完成后执行操作这个问题 就困扰了2天. 先是加在head里面的时候发现这时候太早了.加在body里面 ie下时不时会出错,找不到页面元素(ie6和ie8同样的问题). 但是FF下一切正常.分析应该是ie的 onload方式和FF处理不一样 ff下是严格执行load结束执行 这样就让人很无语.研究了一天 最后还是用了一个jstl方法来实现.今天终于找到了一个JavaScript解决办法 也算是一个ie的hack吧. 就是 在JavaScript中间加入defer属性 等到页面元素都加载完成后再实现页面功能 比如 原来的
<body onload="JavaScript:abc()"> 现在变成 <body onload="JavaScript:abc.defer(1);">
也就是延迟1ms (其实也没有影响).还是hack 现在发现hack是程序的大敌 可维护性太差.
还有就是著名的的 date.getyear()方法了,同事写的代码在ff下返回年份不对.查了一下资料 原来只有ie返回的结果和大家不一样.按照规范应该是错误的,但是大家都用ie结果导致网上这种错误代码到处可见,
还有就是 ie的disable属性不大管用 虽然disable了 但是依然可修改 虽然不提交 但是容易引起误解.真的对于ie失去信心了
|
|
|
|