Monday, August 31, 2009

WAS 6与Websphere MQ6的整合

更多精彩请到 http://www.139ya.com

WAS 6与Websphere MQ6的整合

2007-08-29 19:59作者:出处:天极Yesky软件频道责任编辑:半仙

  整合的目的是让MQ作为websphere application server的JMS provider,所有的JMS消息会被was转发到MQ队列中,由于MQ提供了多种平台的API,因此消息的传递可以不再通过转发的方式。任何平台都可 以直接连接到MQ获取/发送消息,减少了跨平台消息传递中的不确定因素。

  首先在MQ中建立队列管理器、消息队列、服务器连接通道(SYSTEM.DEF.SVRCONN类型的通道)。由于was将通过CLIENT模式与MQ通信,所以有身份认证的问题,需要在通道上配置MAC用户标识,它的值应该是运行MQ的操作系统的 一个用户名称,该用户应该具有管理员权限,推荐使用启动MQ的用户名称。如果不配置该MAC用户标识,那么运行was的机器必须建立一个与运行MQ完全相 同的用户/密码来启动was,才能提供正确的身份信息。如果采用BINDINF的传输模式,就不需要任何的认证信息,但是该模式只能适用于was和MQ在 同一台机器上的情况。而且一个was环境中,只能允许一个连接工厂使用BINDING模式连接,所以不推荐该模式。

  假设建立起来的队列管理器为sobeymam,ccsid为1208(Unicode)或者1381(GB2312),通信端口为1414;建立的消息队列为test,ccsid为1208(Unicode);服务器连接通道为s1,MAC用户标识为bromon。

  下一步是在WAS中建立队列连接工厂,“资源”----“JMS提供者”----“Websphere MQ”----“Websphere MQ队列连接工厂”----“新建”。填写以下内容:

  名称: cf

  JNDI名称: jms/cf

  队列管理器:  mam

  主机: 运行MQ的机器名或IP

  端口: 1414(与队列管理器的侦听端口对应)

  通道: s1(与队列管理器的服务器连接通道对应)

  传输类型: CLIENT

  取消“已起用XA”选项

  连接工厂的配置完成。

  下一步是建立队列目标。“资源”----“JMS提供者”----“Websphere MQ”----“Websphere MQ队列目标”----“新建”。填写以下内容:

  名称: test

  JNDI名称: jms/test

  基本队列名:  test(对应MQ中的本地队列)

  CCSID: 1208

  目标客户机:   MQ

  队列目标的配置完成。需要说明的是,目标客户机的值决定了JMS的消息将以什么格式存放在MQ中。如果是”MQ”,那么消息将直接使用 MQSTR格式,纯文本的存放,任何平台都能够获取消息直接显示。如果是”JMS”,那么消息将使用MSHRF2格式存放,java平台能够不加处理的正 常识别,其他平台必须要做转换才能正确获得消息文本。推荐使用”MQ”。

  如果需要部署消息BEAN获取MQ中的消息,那么还需要配置侦听器端口,“服务器”----“应用服务器”----“server1”----“通信”----“消息传递”----“消息侦听器服务”----“侦听器端口”----“新建”。填写一下内容:

  名称: test

  连接工厂JNDI名: jms/cf(对应websphere队列连接工厂的JNDI)

  目标JNDI名: jms/test(对应websphere队列目标的JNDI)

  侦听器端口配置完成,部署消息bean时需提供该侦听器名称。

  重启websphere使配置生效。

  编写一个jsp尝试发送消息:








<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*"%>
<%@ page import="javax.jms.*"%>
<%@ page import="javax.naming.*" %>
<%
try
{
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,
"com.ibm.websphere.naming.WsnInitialContextFactory");
p.put(Context.URL_PKG_PREFIXES, "com.ibm.ws.naming");
p.put(Context.PROVIDER_URL, "iiop://localhost:2809/");
InitialContext ctx = new InitialContext(p);
QueueConnectionFactory qcf =
(QueueConnectionFactory) ctx.lookup("jms/cf");//连接工厂
QueueConnection conn = qcf.createQueueConnection();
Queue q = (Queue) ctx.lookup("jms/test");//队列
QueueSession s = conn.createQueueSession(
false,QueueSession.AUTO_ACKNOWLEDGE);
conn.start();
QueueSender sender = s.createSender(q);
TextMessage tm=s.createTextMessage(
"测试websphere mq有中文字符");//创建文本消息
sender.send(tm, DeliveryMode.PERSISTENT, 4, 0);
sender.close();
}catch(Exception e)
{
out.println(e);
}
%>

Wednesday, August 26, 2009

WebShpere MQ 配置与测试

更多精彩请到 http://www.139ya.com

From : http://blog.sina.com.cn/s/blog_49a75433010008d5.html

在“WebSphere
MQ程序设计初探”一文中,讨论了从MQ队列管理器的本地队列中放置和读出消息的程序,本文主要通过两台机器,搭建MQ消息传输的环境,并编写测试程序进行测试。
第一、准备工作
准备2台Win2000环境(XP也可),通过以太网连通。
机器A:代码为00000000,IP地址为:10.1.1.1
机器B:代码为88888888,IP地址为:10.1.1.2
安装MQ 5.3

第二、创建MQ对象
A机器上:
1、打开“WebSphere MQ资源管理器”,新建队列管理器,名称为QM_00000000,其余采用默认设置;
2、在QM_00000000队列管理器中创建本地队列,名称为LQ_00000000;
3、创建传输队列,名称为XQ_88888888(新建时选择“本地队列”,将“用法”设置为“传输”);
4、创建远程队列定义,名称为RQ_88888888,指定远程队列名称为LQ_88888888,远程队列管理器名称为QM_88888888,传输队列名称为XQ_88888888;
5、创建发送方通道,名称为00000000.88888888,传输协议为TCP/IP,连接名称为10.1.1.2(1414),传输队列为XQ_88888888;
6、创建接受方通道,名称为88888888.00000000,采用默认设置;
7、创建服务器连接通道,名称为DC.SVRCONN,采用默认设置(该通道主要给后面的测试程序使用)。
B机器和A机器上的操作一样,只是命名不同,如下:
1、打开“WebSphere MQ资源管理器”,新建队列管理器,名称为QM_88888888,其余采用默认设置;
2、在QM_88888888队列管理器中创建本地队列,名称为LQ_88888888;
3、创建传输队列,名称为XQ_00000000(新建时选择“本地队列”,将“用法”设置为“传输”);
4、创建远程队列定义,名称为RQ_00000000,指定远程队列名称为LQ_00000000,远程队列管理器名称为QM_00000000,传输队列名称为XQ_00000000;
5、创建发送方通道,名称为88888888.00000000,传输协议为TCP/IP,连接名称为10.1.1.1(1414),传输队列为XQ_00000000;
6、创建接受方通道,名称为00000000.88888888,采用默认设置;
7、创建服务器连接通道,名称为DC.SVRCONN,采用默认设置。

第三、消息测试
在A、B机器上分别启动其发送方通道,正常情况通道状态应为“正在运行”。
通过如下测试程序进行测试,文件名为:MQTest.java,在机器A上进行运行(如在B上运行请读者自行适当修改)。
-------------------------------------------------------------------------------------------
import java.io.IOException;
import java.util.Hashtable;

import com.ibm.mq.MQException;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;

public class MQSample{
//定义队列管理器和队列的名称
private static String qmName = "QM_00000000";
private static String qName = "RQ_88888888";

private static MQQueueManager qMgr;
private static Hashtable properties = new Hashtable();

public static void main(String args[]) {
try {
properties.put("hostname", "10.1.1.1");
properties.put("port", new Integer(1414));
properties.put("channel", "DC.SVRCONN");
properties.put("CCSID", new Integer(1381));
properties.put("transport","MQSeries");

// Create a connection to the queue manager
qMgr = new MQQueueManager(qmName,properties);
// Set up the options on the queue we wish to open...
int openOptions = 16;
// Now specify the queue that we wish to open,
// and the open options...
MQQueue remoteQ = qMgr.accessQueue(qName, openOptions);

// Define a simple WebSphere MQ message, and write some text in UTF format..
MQMessage putMessage = new MQMessage();
putMessage.writeUTF("Test");
// specify the message options...
MQPutMessageOptions pmo = new MQPutMessageOptions();
// accept the defaults, same as MQPMO_DEFAULT
// put the message on the queue
remoteQ.put(putMessage,pmo);
System.out.println("Message has been input into the Remote Queue");

// Close the queue...
remoteQ.close();
// Disconnect from the queue manager
qMgr.disconnect();
}catch (MQException ex) {
// If an error has occurred in the above, try to identify what went wrong
// Was it a WebSphere MQ error?
System.out.println("A WebSphere MQ error occurred : Completion code " + ex.completionCode +
" Reason code " + ex.reasonCode);
}catch (IOException ex) {
// Was it a Java buffer space error?
System.out.println("An error occurred whilst writing to the message buffer: " + ex);
}catch(Exception ex){
ex.printStackTrace();
}
}
}

websites for mobile

更多精彩请到 http://www.139ya.com


phonearena : http://www.phonearena.com/htmls/home.php

Friday, August 21, 2009

万能查询

This summary is not available. Please click here to view the post.

Wednesday, August 19, 2009

Skyfire

更多精彩请到 http://www.139ya.com


http://www.skyfire.com/

手机上网的软件,可以翻墙

Thursday, August 13, 2009

法语之日常用语(法国)

更多精彩请到 http://www.139ya.com


1.Salutation
comment ça va?你好吗?
ça ne peut pas aller mieux.好得不得了
ça boume?近来很得意吧?
quoi de neuf?近来可好?
alors,t'es toujours vivant?哇塞,你还活着啊?
ça roule?顺利吧
ya pire.还有更糟的
comme si comme ça.差不多
couci-couça.马马虎虎
je suis dans la merde.糟透了
j'ai un trun qui me turlupine.有件事烦死我了
ça va pas fort.不太顺
pas super.不很好
bof.甭题了

2.Au revoir
a tout de suite.回见
a tout à l'heure.一会儿见
a plus tard.待会见
a un de ces jours.改天见
a la prochaine.下回见
a bientôt!后会有期
adieu.永别了
je m'en vais.我走了
bon,j'y vais.好了,我走了
allez,je vous laisse.好了,我走了
il faut que je parte.我得走了
on se téléphone!再打电话联络吧
a tantôt.下午见
ciao.再见(原为意大利语)
il faut que je file.我得开溜了
il faut que je me sauve.我得溜了
je me casse.我得撤了
je te fais signe.我再跟你联络

3.Remerciement
merci infiniment.感激不尽
merci mille fois.万分感谢
merci bien.非常感谢
c'est gentil.真是太好了
c'est sympa.真是太好了
je suis gâté(e).我真受宠若惊
ça ne se fait pas chez nous.在我们那儿不时兴这一套
il ne fallait pas.不敢当(对方送礼时)
tu n'aurais pas dû.你不该这么客气的(对方送礼时)
&人家向你道谢时应回答:
c'est la moindre des choses.这不过小事一桩
je suis à votre disposition.听候吩咐
a votre service.愿为您效劳
pas du tout.一点也不
pas de quoi.没什么
de rien.没什么
ce n'est rien.不算什么
je t'en prie.请别客气

4.S'excuser
je suis navré(e).我很抱歉
je ne l'ai pas fait exprès.我不是故意这么做的
ce n'est pas de ta faute.这不是你的错
ça n'a Pas d'importance.这不打紧
il n'y a pas de mal.这没什么不好
je ne t'en veux pas.我不怪你
laisse béton.崩提了
laisse tomber.算了
on efface tout et on recommence.不要再提了,我们重新开始吧
je suis coincé(e).我分不开身
je ne suis pas disponible.我没法抽身
je ne suis pas libre.我没空
ça tombe mal.真不巧
je suis prise.我另外有事
on a d'autres chats à fouetter.我们还有别的事要忙

5.Jugement positif
c'est un bricoleur.这个人很会修修弄弄(比喻有本事)
il est branché.他很不错
il est doué.他很有天份
il est génial.他真是个天才
il est sympa.他很讨人喜欢
elle a du charme.她挺迷人
l'affaire est dans le sac.事情就快成了
ça va aller.会顺利的
elle a du chien.她蛮迷人的
elle est chouette.她真不错
elle est cool.她好酷

6.D'accord
je partage votre opinion.我赞成您的意见
je suis de votre opinion.我的意见跟您的一样
je suis de votre avis.我同意您的看法
bonne idée.好主意
impeccable.太完美了
je ne dis pas non.我不反对
effectivement.的确如此
tout à fait.完全正确
mais oui.当然咯
entendu.好的
chouette.真棒
volontiers.非常乐意
comme je te le dis.就像我和你说的
il y a intérêt.这样做准没错

7.Désir
je désire...我想
je voudrais...我想要
je souhaite...我希望
je cherche à...我想
je tiens à...我坚持
ça me dit.我很有兴趣
j'ai envie de...我很想...
ça me donne envie de...这让我很想..
ça me ferait plaisir de...我很乐意
ça me dit bien.我很愿意
c'est tentant.这很诱人

8.Amusant
c'est drôle.真有趣
c'est rigolo.真好笑
c'est chouette.太棒了
c'es pas mal.不错
c'est impayable!有钱也买不到
c'est poilant!真滑稽
c'est hilarant!真好笑
c'est bidonnant!太好笑了
c'est crevant!笑死人了
c'est gondolant!令人捧腹大笑
c'est un type drôle.这家伙很搞笑
c'est un numéro.他真是绝

9.Rire/moquerie
tu as le mot pour rire.你真会说笑
c'est fin!哼,真精明(嘲讽)
c'est spirituel!真有水准(嘲讽)
c'est malin.真机灵
c'est pour rire.开玩笑的
c'est à éclater de rire.这真让人暴笑
c'est à hurler de rire.真是笑翻天了
c'est à mourir de rire.真笑死人了
ça me fait rire aux larmes.我都要笑出眼泪来了
je te taquine.我跟你闹着玩儿的
tu te moques de moi!你在笑我
tu te fiches de moi!你在嘲笑我
il m'a ri au nez.他嘲笑我
il m'envoie promener.他打发我
il m'a monté un bateau.他开了我一个玩笑
c'est tordant.哇,真笑死人了
tu charries!你太夸张了
il m'a mis en boîte.他耍了我
tu te fous de moi.你在耍我

10.Chance
quelle chance!运气真好
tu es chanceux(euse).你真好运
tu es né(e) sous une bonne étoile.你生来命好
je touche du bois.老天保佑
encore heureux!幸好
dieu merci!感谢上帝
tu as laissé passer ta chance.你错过了大好机会
jamais deux sans trois.事不过三
tu as de la veine.你真好运
t'es cocu.你发了
tu as une veine de pendu.你走运了
t'as du pot.你运气真不错
tu as du bol.你走运了
t'as la baraka.你真好运

11.Suprise
je suis suprise(e).我很吃惊
je suis choqué(e).我很诧异
je suis étonné(e).我很惊讶
je n'en reviens pas.我不能接受这件事
je n'en crois pas mes yeux.我不相信竟然有这种事
pince-moi.je rêve!掐我一下,我不是在做梦吧
quoi?tu rigoles?什么?你开玩笑吧?
tu blagues!你爱说笑
franchement?没骗人吧?
c'est surprenant de sa part.她让人蛮惊讶的
je suis baba.我愣住了
tu me prends de court.你真把我给吓到了
je tombe de haut.我吓了一跳

12.Facile c'est un jeu d'enfant.这是小孩子的把戏
ça saute aux yeux.这一目了然
il le connaît comme sa poche.他太了解他了
c'est dans la poche!跑不掉了
il le connaît sur le bout des doigts.他对他了如指掌
c'est sans-souci!不用担心
c'est une femme facile.这个女人很轻佻
c'est du billard.这太简单了
c'est du gâteau.这是件轻松愉快的事
je me la coule douce.我有好日子过了 褒义
c'est peinard.这不累人
ce n'est pas la mer à boire.这不难

13.Méfiance
je me méfie.我怀疑
c'est louche.真诡异
ce n'est pas catholique.这不太诚实
ça m'étonnerait.我挺怀疑的
il est gonflé.他太夸张了
sans blague?不是开玩笑?
tu plaisantes?你在开玩笑吧
mon oeil!胡说
tu parles...哼...
penses-tu!才怪
j'ai des soupçons,là.对这件事我有些怀疑
t'es sûre(e) de toi?你确定你说的?
tu me fais marcher!你在耍我
qu'est-ce que tu racontes?你胡说些什么
je te jure!我跟你发誓
14.J'ai peur!
ça me préoccupe.我很担心
je suis stessé(e).我好紧张
j'ai le trac.我紧张得牙齿都在打颤
j'ai une peur bleue.我害怕极了
je suis vert(e) de peur.哦吓得脸色发青
je suis paniqué(e).我被吓得惊慌失措
je suis angoissé(e).我很不安
quelle horreur!真吓人
ça me donne la chair de poule.真让人起鸡皮疙瘩
je crains le pire.我怕还有更糟的
ça m'a donné froid dans le dos.把我吓得背脊发凉
mes cheveux se sont dressés sur ma tête.我被吓得头发都竖起来了
j'ai les foies.我神经紧绷
j'ai la colique.我紧张得想上厕所
j'ai la pétoche.我好害怕
froussard!胆小鬼
dégonflé!?泄气啦
c'est un poltron,un couard.他真是个胆小鬼

15.Dépêche-toi!
allez!快点儿
presse-toi!快点
patience!忍耐点儿
ce n'est pas pressé.不急
prends ton temps.慢慢来
grouilles-toi!赶快啦
tu te traînes!你拖什么
mais qu'est-ce que tu fous?你在胡搞什么
t'arrives ou quoi?你到底来不来
magne-toi le train/le cul/le fion/le popotin!快点
t'accouches?你在磨蹭什么

16.Urgence
au secours!救命啊
faites quelque chose!想点办法啊
a l'aide!来帮忙啊
au feu!失火了
a l'assassin!杀人了
au voleur!小偷
fait gaffe!小心

17.Rassure-toi!
ça ira.没问题
ce n'est pas dramatique.这没什么大不了的
ne t'en fais pas.别操心
il n'y aura pas de problème.不会有问题的
écoute,c'est pas la fin du monde.喂,这又不是世界末日
tout s'arrangera.事情都会解决的
fais-moi confiance.相信我
je m'en occupe.我来处理
tu peux commpter sur moi.包在我身上
ayez confiance en moi.要对我有信心
pas de nouvelles,bonnes nouvelles.没有消息就是好消息
ne t'affole pas.别慌乱
pas de panique.别慌
ne te fais pas de mauvais sang.别紧张兮兮地
ça ne fera pas un pli.不会有事的
ne te fais pas de bile.别紧张

18.Compréhension
je l'ignore.我疏忽了
je ne suis pas au courant.我了没听说过
je ne peux pas vous le dire.我可不敢跟您确定
aucune idée.不知道
qu'est-ce que tu racontes?你说什么
t'as saisi?你明白了吧
vu?明白了吧
tu me suis?你明白我的意思吧
tu te rends compte?你明白其中利害吧
je n'ai rien pigé.我完全不清楚
tu dis quoi,là?你说什么来着

19.Résignation
c'est la vie!这就是命啊
je n'ai rien à dire.我没话可说
plus ça change,plus c'est pareil.改来改去还不是都一样
c'est pas tous les jours dimanche!哪能天天放假啊
c'est la faute à pas de change.都怪运气不好
on ne peut pas tout avoir.什么都要,那是不可能的
n'insistez pas.别坚持了
ne vous fatiguez pas.别自找罪受了
inutile de se battre.不用再坚持了
ça ne donnerait rien.这不会有结果的
qu'est-ce que ça peut faire?这又有什么用
c'est des choses qui arrivent.这是难免发生的
ça arrive.难免会有这种事的
qui vivra verra!留得青山在,不怕没材烧
les jeux sont faits.木已成舟
ce qui est fait est fait.生米已成熟饭

20.Jugement négatif
il est borné.他眼光真短浅
il est collant.他好黏人
il est consipé.他很吝啬
c'est un emmerdeur.惹人厌的家伙
il est insolent.他很无理
il est impénétrable.他很难沟通
il est macho.他很大男子主义
il est maso.他是个自虐狂
il est pervers.他很邪
il est polisson.他很好色
il est prétentieux.他很自以为是
il est radin.他很小气
il est râleur.他爱发牢骚
il est sadique.他是虐待狂
il est sec.他很无情
il est snob.他很赶时髦
il est casse-pieds.他很惹人厌
c'est un ours.他独来独往
il n'est pas très clair.他挺暧昧的
il n'est pas très net.他暧昧不明的
il est toujours dans la lune.他整天糊里糊涂
il a un esprit mal placé.他脑子有病
c'est un charlatan.他真骗人
c'est un chaud lapin.他是个花花公子
c'est un dragueur.他爱粘花惹草
c'est un faux jeton.他很虚伪
c'est un fainéant.他很懒
c'est un frimeur.他很虚假
c'est une grande gueule.他爱说三道四
c'est un homme à femmes.这个人很有女人缘
c'est un m'as-tu-vu.他很爱炫耀
c'est un pique-assiette.他爱吃白食
c'est un rétrograde.他很落伍
elle est aguichante.她爱挑逗人
elle est coquette.她很爱美
elle est dépensière.她很爱花钱
elle est hystérique.她很歇斯底里
elle n'est pas commode.她很难搞定
c'est une mauvaise langue他(她)爱说别人坏话
c'est une langue de vipère.他(她)说话很毒
ça me fait chier.这令我讨厌
il me fait suer.他让我觉得厌烦
il pue le bouc.他嘴臭
c'est un lèche-cul.这是个马屁精

21.Difficile挑剔
il aime bien chercher la petite bête.他爱找人家碴
c'est pas du gâteau.这可麻烦了(可指人或事)
c'est pas évident.这不单纯
c'est pas la joie.这可不好玩
c'est pas une partie de plaisir.这可不是闹着玩的
je peine.我很痛苦
c'est la galère.这很累人的
il me fait suer.他找我麻烦
c'est pas de la tarte.这挺难弄的
c'est coton.太难了

22.Désappréciation不欣赏
aucun intérêt.没兴趣
c'est pas terrible.糟透了
ce n'est pas ma tasse de thé.这不是我喜欢的
ce n'est pas mon truc.这不是我的拿手好戏
ce n'est pas mon genre.这可不合我的口味
c'est barbant.好无聊
c'est rasoir!真无聊
quelle barbe!真乏味
c'est nul!真没用

语音视频在线学习网
法语:fr.szstudy.cn/french.asp?userid=2313

Thursday, August 6, 2009

泡沫惊梦-谢国忠

更多精彩请到 http://www.139ya.com


转自 : http://xieguozhongblog.blog.hexun.com/35773156_d.html

泡沫惊梦

政府并没有能力扭转市场趋势。然而,“政府不会让市场‘跳水’”这一想法,在中国股市里根深蒂固

  中国股市和房地产市场再起泡沫,这是由于银行海量贷款刺激,加上对出现通胀的恐惧共同造成的。我认为,中国股市和房地产市场价值被高估了50%,甚至100%。这两个市场很可能在今年四季度出现调整。

  不过,在明年某个时候,两个市场可能会再次爆发泡沫。美元再次转强之日,也是美丽的泡沫破灭之时。严重的通胀将迫使美联储加息,或许会成为击碎泡沫的催化剂。

  中国资产市场已成为一个巨大的“庞式骗局”——价格完全靠升值预期来支撑。 随着越来越多的人和流动资金被吸入市场,价格被进一步哄抬,不断验证着人们看多的预期。于是,又有更多的人加入这场狂欢。然而,到没有足够的流动资金来喂 饱这头“野兽”之时,泡沫也就破裂了。目前来看,流动性还不构成制约因素。尽管上半年新增贷款达到7.4万亿元人民币,但6月贷存款比例仅为66.6% (去年12月这一比例为65%),增幅甚微。这意味着,许多贷款没有进入实体经济,而是成了资产市场交易的杠杆。中国房地产市场与1997年香港的情况极 为相似。

泡沫随美元起伏

  中国资产泡沫源于流动性过剩,表现为较高的外汇储备水平以及较低的贷存款比例。美元疲软和出口强劲,造成了中国流动性过剩的状况。

  虽然目前中国正在经受出口疲软的折磨,但弱势美元使中国得以大肆释放其在过去五年内积聚的流动性,而不必担心货币贬值的风险。

  其实,预言泡沫什么时候破灭并不难。当美元再次变得强势时,流动性将会重重地击破泡沫。

  不过,很难讲美元何时会转强。自1985年“广场协议”后,美元就迎来了熊市,并在十年后的1995年触底。然 后,就是七年牛市。目前的美元熊市始于2002年,从那时算起,美元指数(DXY)的价值已减少约35%。如果把上轮熊市作为标杆,目前的熊市可能会持续 到2012年。IT革命开启了上一轮美元牛市,谁也说不准会不会有另一场技术革命,从而引领美元进入一个可持续的牛市。

  当然,货币政策可以促成一个短暂而火爆的美元牛市。上世纪80年代初期,当时的美联储主席保罗沃尔克,用两位数的幅度加息,以控制通胀。从那以后,美元升值的进程十分艰难。目前的局势与此类似。照此发展,几乎可以肯定,中国资本市场和经济将会“硬着陆”。

  泡沫能维持多久,取决于政府的流动性政策。目前的泡沫,很大程度上是由政府鼓励银行贷款和超低的银行间利率造成 的。由于美联储实行零利率政策,加之美元疲软,中国的外汇储备水平很高,贷存款比例又很低,因此,造成流动性增加,将进一步扩大泡沫。然而,考虑到其他一 些因素,可能会促使政府冷却一下过热的情绪。

  如果政府尽其所能制造流动性,那么,当泡沫破灭时,连挽救的“弹药”都没有了。如果那时全球经济已经恢复,中国经济或许会随着强劲的出口“软着陆”,但资本市场“硬着陆”是必然的。相反,如果全球经济那时依然疲弱,依照我个人观点,股市、房地产市场和经济都将出现“硬着陆”。

虚妄的“泡沫无害论”

  “走走停停”的方法可能会降低这一风险。政府先是掀起了流动性“巨浪”,然后想关上这个“水闸”。当流动性被完 全吸收时,市场也将失去动力。一旦市场下跌到一定程度,政府可以引发另一波“巨浪”,使其再次焕发生机。这种做法,不但能够保存“弹药”,还能限制泡沫的 规模,在泡沫最终破灭时,把危害降到可控范围内。我觉得,政府可能会采用这一策略。如果今后几年内全球经济仍将下滑,我们或许可以看到,中国的股票和房地 产市场每年都要来这么一次大波动。眼前,这股向下的波动可能发生在“国庆节”前后。

  很多人认为,中国没有泡沫。高资产价格只是反映了中国高增长的潜力。没人能肯定地说,这到底是真正的资产繁荣,还是只是泡沫。

  我对中国资本市场的现状看法很明确:存在大量泡沫。泡沫的爆裂将给整个国家带来极坏的后果。但由于很多人正乐在其中,政府不会先发制人,消灭泡沫。事实上,在政策决策层,许多人认为,泡沫有利于经济复苏。在美元疲弱时,这一说法听起来有些道理,因为泡沫可以在经济降温时,带来更多的流动性。当美元复苏时,中国的资本市场,也许整个经济,都将出现“硬着陆”。我希望,那些大力鼓吹泡沫的人,能够站出来,为造成损失承担责任。

  研究泡沫最基本的方法是看估价。评估房价,最重要的方法是衡量一下价格收入比和租金收益。目前,在全国范围内, 每平方米房价已经相当接近美国的平均水平。而美国的人均收入是中国城市人均收入的7倍。中国房屋每平方米均价,相当于一般人三个月的工资收入,这一水平也 许在世界上都是最高的。

  就我所知,现在,很多房子都租不出去。平均租金收益,如果算上那些租不出去的房子的话,真是低得可怜。无论从百姓的购买力,还是预期的出租收入看,中国的房价都高得离谱。有些人认为,中国的房地产一向如此:房价越来越高。这是不对的。

  中国房地产市场泡沫还有另外一面,即其在地方政府财政中所起的作用。土地销售收入以及物业销售带来的税收,占了 地方政府财政收入很大一块,因此,他们有很强的动力来刺激房地产市场发展。土地销售往往被精心设计,以期重燃涨价预期。例如,那些以超高价格投标的土地, 会被封为“地王”。最近,“地王”往往被国有企业拍下。当国有企业借用国有银行的钱,再通过土地竞拍把钱还给地方政府,价格还有意义吗?只不过是资金在政府的“大口袋”里面滚来滚去罢了。如果私人开发商试图跟着国有企业追涨土地市场,无异于自杀。

股市从无“救世主”

  股市又处于最后的疯狂。无知的散户投资者都被上升的势头吸引。他们再次梦想一夜致富。和过去一样,散户投资者通 常会赔钱,特别是现在刚跳进股市的那些人。最后的疯狂往往不会持久。在中国,股市的转折点经常与政治日历相关。散户投资者普遍认为,政府不会让股市在共和 国60周年大庆之前掉下来。短期内,这种信念会自我实现。从历史经验看,这一波上涨将在“十一”之前逐渐熄火。

  “政府不会让市场‘跳水’”这一想法,在中国股市里根深蒂固。在格林斯潘时代,金融市场相信他总会在危急时刻出手“救市”。但在现实生活中,在大势发生逆转时,政府并没有能力去扭转市场趋势。过去,中国股市大起大落,这表明政府根本无力阻止市场下跌。然而,这一虚构的信念仍然深深植根于投资者心里。

  有些政府智囊认为,泡沫的害处也许没那么大。一个流行的说法是,在泡沫起来时,钱从一个人的口袋进了另一个人的口袋,只要钱还在中国国内流动,就不会产生什么长期危害。这么说的人,应该看看日本和香港,看看泡沫究竟如何不出境而造成了巨大的破坏。

  在泡沫之下,资源被用于制造更多泡沫。这些资源将被永久性浪费掉。例如,商人再也不愿意把精力放在实体经济中,转而投入时间和精力,从事市场投机。这意味着,未来的中国,将不会有具有全球竞争力的公司。尽管中国已经历30多年的高增长,但很少有公司拥有全球竞争力。一连串的泡沫,可能是造成这一现状的主要原因。

  现在的年轻一代,对真正的工作兴味索然,反而沉迷于股市投机。相对于每月领 固定薪水,他们更愿意看到自己持有的股票价格在一天内变来变去,然后开始产生幻觉,认为自己能在股市里面挣到大钱。当然,他们中的大多数人可能会输得一无 所有,然后,可能就会做出一些极端的举动。如此造成的社会后果可能相当严重。

房市蜃楼

  房地产泡沫通常导致经济过热。建筑空置,代表着永久性损失。在中国,大多数人也许会嘲笑这一可能性。毕竟,13 亿人的住房需求几乎是无限的。但是,现实情况完全不是这样。中国的城市居民人均占有住房面积为28平方米,按国际标准来衡量的话,这一水平也相当高。中国 的城市化率是50%左右,它可以上升到70%-75%。以后,由于人口老龄化的原因,农村人口将会减少。因此,中国的城市人口会另外增加3亿人。

  如果我们假设,这些人都能够负担得起一处房产(以今天的价格来看,这个说法很可笑),中国的城市可能需要额外 84亿平方米住房。中国现在的工作,已经完成了超过20亿平方米的建设,现在还有足够的土地能够容纳另一个20亿平方米。每年建筑业生产能力约为15亿平 方米。产能绝对过剩,即没有足够的人来住满所有的房屋,可能这一状况很快就会出现。当这样的情况出现时,后果是相当严重的。房地产价格可能大幅下降,正如 日本在过去的20年中经历的一样,同时,这将摧毁整个银行系统。

  房地产泡沫造成的最严重的损害,就是人口的变化。高楼价会降低人口出生率。当泡沫破灭的时候,房地产价格下降,低生育水平的文化观念是无法改变的。香港、日本、韩国、台湾在其发展进程中都经历了房地产泡沫。在泡沫肆虐时期,他们的出生率下降,随后,尽管政府激励,这一状况也没有改变。单是中国的计划生育政策本身,就导致未来20年的人口灾变。房地产泡沫使趋势变得更加不可逆转:即使政府放弃计划生育政策,对出生率也不会有明显影响。未来20年,中国将面临人口老龄化以及人口总数下降的局面。当然,房地产价格也将非常低,并一低再低

  泡沫除了造成再分配的净亏损,还会带来非常严重的社会后果。在股市泡沫中,大部分家庭会损失,而极少数人则赚得 盆满钵满。中国的财富差距现象已非常严重,泡沫使情况变得更糟。即使等到中国的城市化完成,相当部分的人,甚至是大多数人,可能都没有什么钱。这将造成社 会不稳定。当大多数人都拥有财富,并在社会中有一席之地的时候,市场经济才是稳定和有效的。

  总之,眼下市场的疯狂不会持续很长时间。“纠偏”可能发生在今年四季度。明年,由于中国仍有能力释放出更多的流动性,可能会出现另一波热潮。当美元恢复强势时,可能在2012年,中国的股票和房地产市场,可能会像在亚洲金融危机期间一样,遭遇雪崩。

如何扩充VMware的硬盘空间

更多精彩请到 http://www.139ya.com


最近发现虚拟机里的16G硬盘空间不够用了。随着安装软件和windows更新,硬盘可用空间越来越少,这种事情相信大家迟早也会遇上的,那么如何简单的实现硬盘空间扩充呢?

如果只是添加一个新硬盘文件是不够的,因为这样无法把两个硬盘合并。虽然可以多出一个新硬盘,但是系统区的大小还是无法得到改变。

另外也可以使用ghost或VM converter把系统整个克隆下来,然后重新安装在较大的VM硬盘上。这个方法虽然可行,不过耗时较长,而且也占用硬盘空间。

那么,是否有更简单的方法直接修改原来的VM硬盘文件呢?

其实VM早就提供了相关工具, vmware-vdiskmanager.exe 可以对VM的硬盘进行编辑和管理。

这是一个DOS程序,直接运行会看到使用方法。

使用这个工具扩充硬盘的命令很简单,例如:

你有一个16G的硬盘文件 C:\MyVM\Windows Vista.vmdk

你想把这个硬盘扩充到32G,命令如下:

vmware-vdiskmanager -x 32Gb "C:\MyVM\Windows Vista.vmdk"

扩充过程可能需要花上几分钟,等进度指示100%后就扩充完毕了。

然后你再进入VM系统看看,这时候你已经多出一快16G的空白空间。想把它扩充到C盘上,使用Vista下自带的磁盘管理工具(控制面板\管理工具 \计算机管理\磁盘管理)就可以实现,无需安装第三方软件。如扩充16G空间到C盘,只需在C盘上右键选择扩充就行了,然后选择需要扩充的空间大小,确定就瞬间完成了。现在看看C盘是不是已经变成32G了

Wednesday, August 5, 2009

Spring - Java/J2EE Application Framework

更多精彩请到 http://www.139ya.com

Spring - Java/J2EE Application Framework : http://www.jactiongroup.net/reference/html/index.html

Eclipse 启动运行速度调优

更多精彩请到 http://www.139ya.com

转自 : http://www.javaeye.com/wiki/Eclipse/669-Eclipse%20%E5%90%AF%E5%8A%A8%E8%BF%90%E8%A1%8C%E9%80%9F%E5%BA%A6%E8%B0%83%E4%BC%98

JVM 提供了各种用于调整内存分配和垃圾回收行为的标准开关和非标准开关。其中一些设置可以提高 JAVA IDE 的性能。
注意,由于 -X (尤其是 -XX JVM)开关通常是 JVM 或 JVM 供应商特定的,本部分介绍的开关可用于 Sun Microsystems J2SE 1.4.2。

以下设置在大多数系统上将产生比工厂更好的设置性能。
-vmargs - 表示将后面的所有参数直接传递到所指示的 Java VM。

-Xverify:none - 此开关关闭Java字节码验证,从而加快了类装入的速度,并使得在仅为验证目的而启动的过程中无需装入类。此开关缩短了启动时间,因此没有理由不使用它。

-Xms24m - 此设置指示 Java 虚拟机将其初始堆大小设置为 24 MB。通过指示 JVM 最初应分配给堆的内存数量,可以使 JVM 不必在 IDE 占用较多内存时增加堆大小。

-Xmx96m - 此设置指定 Java 虚拟机应对堆使用的最大内存数量。为此数量设置上限表示 Java 进程消耗的内存数量不得超过可用的物理内存数量。对于具有更多内存的系统可以增加此限制,96 MB 设置有助于确保 IDE 在内存量为 128MB 到 256MB 的系统上能够可靠地执行操作。注意:不要将该值设置为接近或大于系统的物理内存量,否则将在主要回收过程中导致频繁的交换操作。

-XX:PermSize=20m - 此 JVM 开关不仅功能更为强大,而且能够缩短启动时间。该设置用于调整内存"永久区域"(类保存在该区域中)的大小。因此我们向 JVM 提示它将需要的内存量。该设置消除了许多系统启动过程中的主要垃圾收集事件。SunONE Studio 或其它包含更多模块的 IDE 的用户可能希望将该数值设置得更高。
下面列出了其它一些可能对 ECLIPSE 在某些系统(不是所有系统)上的性能产生轻微或明显影响的 JVM 开关。尽管使用它们会产生一定的影响,但仍值得一试。

-XX:CompileThreshold=100 - 此开关将降低启动速度,原因是与不使用此开关相比,HotSpot 能够更快地将更多的方法编译为本地代码。其结果是提高了 IDE 运行时的性能,这是因为更多的 UI 代码将被编译而不是被解释。该值表示方法在被编译前必须被调用的次数。

-XX:+UseConcMarkSweepGC -XX:+UseParNewGC - 如果垃圾回收频繁中断,则请尝试使用这些开关。此开关导致 JVM 对主要垃圾回收事件(如果在多处理器工作站上运行,则也适用于次要回收事件)使用不同的算法,这些算法不会影响整个垃圾回收进程。注意:目前尚不确定此收 集器是提高还是降低单处理器计算机的性能。

-XX:+UseParallelGC - 某些测试表明,至少在内存配置相当良好的单处理器系统中,使用此回收算法可以将次要垃圾回收的持续时间减半。注意,这是一个矛盾的问题,事实上此回收器主 要适用于具有千兆字节堆的多处理器。尚无可用数据表明它对主要垃圾回收的影响。注意:此回收器与 -XX:+UseConcMarkSweepGC 是互斥的。

我的机器是512MB的内存
下面是我的eclipse启动参数:eclipse.exe -vmargs -Xverify:none -Xms64M -Xmx256M -XX:PermSize=20M -XX:+UseParallelGC

-----

我的电脑是1G内存, 有一次内存不足了... MyEclipse 就推荐我使用一个启动参数, 现在我的启动参数是:


eclipse.exe -vmargs -Xverify:none -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M -XX:+UseParallelGC

spring入门编程问题集锦

更多精彩请到 http://www.139ya.com


1、如何学习Spring?
你可以通过下列途径学习spring:
(1) spring下载包中doc目录下的MVC-step-by-step和sample目录下的例子都是比较好的spring开发的例子。

(2) AppFuse集成了目前最流行的几个开源轻量级框架或者工具 Ant,XDoclet,Spring,Hibernate(iBATIS),JUnit,Cactus,StrutsTestCase,Canoo's WebTest,Struts Menu,Display Tag Library,OSCache,JSTL,Struts 。
你可以通过AppFuse源代码来学习spring。
AppFuse网站:http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuse

(3)Spring 开发指南(夏昕)(http://www.xiaxin.net/Spring_Dev_Guide.rar)
一本spring的入门书籍,里面介绍了反转控制和依赖注射的概念,以及spring的bean管理,spring的MVC,spring和hibernte,iBatis的结合。

(4) spring学习的中文论坛
SpringFramework中文论坛(http://spring.jactiongroup.net)
Java视线论坛(http://forum.javaeye.com)的spring栏目

2、利用Spring框架编程,console打印出log4j:WARN Please initialize the log4j system properly?
说明你的log4j.properties没有配置。请把log4j.properties放到工程的classpath中,eclipse的 classpath为bin目录,由于编译后src目录下的文件会拷贝到bin目录下,所以你可以把log4j.properties放到src目录下。
这里给出一个log4j.properties的例子:

log4j.rootLogger=DEBUG,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %5p (%F:%L) - %m%n


3、出现 java.lang.NoClassDefFoundError?
一般情况下是由于你没有把必要的jar包放到lib中。

比如你要采用spring和hibernate(带事务支持的话),你除了spring.jar外还需要hibernat.jar、aopalliance.jar、cglig.jar、jakarta-commons下的几个jar包。

http://www.springframework.org/download.html下载spring开发包,提供两种zip包
spring-framework-1.1.3-with-dependencies.zip和spring-framework- 1.1.3.zip,我建议你下载spring-framework-1.1.3-with-dependencies.zip。这个zip解压缩后比后 者多一个lib目录,其中有hibernate、j2ee、dom4j、aopalliance、jakarta-commons等常用包。


4、java.io.FileNotFoundException: Could not open class path resource [....hbm.xml],提示找不到xml文件?
原因一般有两个:
(1)该xml文件没有在classpath中。
(2)applicationContext-hibernate.xml中的xml名字没有带包名。比如:
<bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
<property name="dataSource"><ref bean="dataSource"/></property>
<property name="mappingResources">
<list>
<value>User.hbm.xml</value> 错,改为: <value>com/yz/spring/domain/User.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect"> net.sf.hibernate.dialect.MySQLDialect </prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>


5、org.springframework.beans.NotWritablePropertyException: Invalid property 'postDao' of bean class?
出现异常的原因是在application-xxx.xml中property name的错误。
<property name="...."> 中name的名字是与bean的set方法相关的,而且要注意大小写。
比如
public class PostManageImpl extends BaseManage implements PostManage {
private PostDAO dao = null;
public void setPostDAO(PostDAO postDAO){
this.dao = postDAO;
}
}
那么xml的定义应该是:
<bean id="postManage" parent="txProxyTemplate">
<property name="target">
<bean class="com.yz.spring.service.implement.PostManageImpl">
<property name="postDAO"><ref bean="postDAO"/></property> 对
<property name="dao"><ref bean="postDAO"/></property> 错
</bean>
</property>
</bean>


6、Spring中如何实现事务管理?
首先,如果使用mysql,确定mysql为InnoDB类型。
事务管理的控制应该放到商业逻辑层。你可以写个处理商业逻辑的JavaBean,在该JavaBean中调用DAO,然后把该Bean的方法纳入spring的事务管理。

比如:xml文件定义如下:
<bean id="txProxyTemplate" abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager"><ref bean="transactionManager"/></property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>

<bean id="userManage" parent="txProxyTemplate">
<property name="target">
<bean class="com.yz.spring.service.implement.UserManageImpl">
<property name="userDAO"><ref bean="userDAO"/></property>
</bean>
</property>
</bean>

com.yz.spring.service.implement.UserManageImpl就是我们的实现商业逻辑的JavaBean。我们通过parent元素声明其事务支持。


7、如何管理Spring框架下更多的JavaBean?
JavaBean越多,spring配置文件就越大,这样不易维护。为了使配置清晰,我们可以将JavaBean分类管理,放在不同的配置文件中。 应用启动时将所有的xml同时加载。
比如:
DAO层的JavaBean放到applicationContext-hibernate.xml中,商业逻辑层的JavaBean放到 applicationContext-service.xml中。然后启动类中调用以下代码载入所有的ApplicationContext。

String[] paths = {"com/yz/spring/dao/hibernate/applicationContext-hibernate.xml",
"com/yz/spring/service/applicationContext-service.xml"};
ctx = new ClassPathXmlApplicationContext(paths);


8、web应用中如何加载ApplicationContext?
可以通过定义web.xml,由web容器自动加载。

<servlet>
<servlet-name>context</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext-hibernate.xml</param-value>
<param-value>/WEB-INF/applicationContext-service.xml</param-value>
</context-param>

9、在spring中如何配置的log4j?
在web.xml中加入以下代码即可。
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>


10、Spring框架入门的编程问题解决了,我该如何更深地领会Spring框架呢?
这两本书你该去看看。这两本书是由Spring的作者Rod Johnson编写的。
Expert One on one J2EE Design and Development
Expert One on one J2EE Development Without EJB
你也该看看martinfowler的Inversion of Control Containers and the Dependency Injection pattern。
http://www.martinfowler.com/articles/injection.html

再好好研读一下spring的文档。
http://www.jactiongroup.net/reference/html/index.html(中文版,未全部翻译)