锘??xml version="1.0" encoding="utf-8" standalone="yes"?>激情视频亚洲,91tv官网精品成人亚洲,久久精品亚洲一区二区http://www.aygfsteel.com/zhuanggl/category/45590.html璁板綍宸ヤ綔涓殑鐐圭偣婊存淮 鐣欎綇閭d簺娣℃貳鐨勫洖蹇?/description>zh-cnWed, 14 Jul 2010 18:20:44 GMTWed, 14 Jul 2010 18:20:44 GMT60btrace浣跨敤瀹炰緥http://www.aygfsteel.com/zhuanggl/archive/2010/07/14/326120.html浜曞簳闈掕洐,甯告湜澶╃┖浜曞簳闈掕洐,甯告湜澶╃┖Wed, 14 Jul 2010 11:18:00 GMThttp://www.aygfsteel.com/zhuanggl/archive/2010/07/14/326120.htmlhttp://www.aygfsteel.com/zhuanggl/comments/326120.htmlhttp://www.aygfsteel.com/zhuanggl/archive/2010/07/14/326120.html#Feedback0http://www.aygfsteel.com/zhuanggl/comments/commentRss/326120.htmlhttp://www.aygfsteel.com/zhuanggl/services/trackbacks/326120.html 銆? BTrace 璇存槑銆? http://kenai.com/projects/btrace
鏄竴涓疄鏃剁洃鎺у伐鍏鳳紝浣跨敤浜? java agent 鍜? jvm attach 鎶鏈紝鍙互鍦ㄤ笉鍋滄満鐨勬儏鍐典笅瀹炴椂鐩戞帶綰夸笂紼嬪簭鐨勮繍琛屾儏鍐碉紝鍙﹀錛屽 btrace 鑴氭湰錛堝疄闄呬笂灝辨槸 java 紼嬪簭錛夊仛浜嗛潪甯鎬弗鏍肩殑瀹夊叏闄愬埗錛屽畨鍏ㄦу緢楂橈紝瀵瑰簲鐢ㄧ▼搴忓熀鏈病鏈夊獎鍝嶃傚湪鎬ц兘鏂歸潰錛? cobar 榪涜榪囨祴璇曪紝瀵規柟娉曡繘琛岃皟鐢ㄨ楁椂緇熻鐨勬椂鍊欙紝鍩烘湰娑堣垂鍦ㄥ井縐掔駭鍒紝鍙互璇村井涓嶈凍閬撱?

銆愯儗鏅?/span>

鍦ㄤ腑鏂囩珯 napoli 涓婄嚎榪囩▼鍚庯紝鍙戠幇浜嗕竴涓鎬殑鐜拌薄錛屽敖綆?宸茬煡"鐨? offer 鍙戦佺閮藉凡緇忚縼縐誨埌
napoli 緋葷粺涓紝浣嗘槸鑰佺殑 mq 緋葷粺浠嶇劧鏈夋柊鐨? offer 娑堟伅榪涙潵錛屽洜涓鴻繛鎺? mq 鐨勬湇鍔″櫒闈炲父澶氾紝瀹氫綅娑堟伅鏉ユ簮鎴愪簡涓涓潪甯稿ぇ鐨勯棶棰樸傝繖縐嶆儏鍐碉紝鎯沖埌浜嗕嬌鐢? BTrace 鍦ㄦ煇涓鍙版湇鍔″櫒榪涜綰夸笂鐩戞帶榪涜屾湡鏈涘彂鐜拌繖涓菇鐏點?

銆愯繃紼嬨?/span>

棣栧厛錛屾垜浠渶瑕佺煡閬撲袱涓熀鏈俊鎭細娑堟伅綾誨瀷鍜屾潵婧? ip 錛岃繖鏍鋒墠鍙互瀹氫綅 offer 娑堟伅鐨勬潵婧愩?

瑕佺煡閬撴潵婧? ip 錛岄渶瑕佹壘鍒版湇鍔″櫒绔? 綆$悊鐨勭被錛屽彧鏈夊湪寤虹珛 socket 鐨勫湴鏂癸紝鎵嶅彲浠ユ姄鍒板叿浣? ip 錛岀粡榪囧垎鏋? amq 浠g爜錛屽彂鐜? tcp 榪炴帴鍩烘湰鏄敱涓嬮潰榪欎釜綾繪潵鏈嶅姟鎵鏈夋秷鎭殑鎺ユ敹鐨勶細

public class TcpTransport extends TransportThreadSupport implements Transport, Service, Runnable {

private static final Log LOG = LogFactory.getLog(TcpTransport.class);

private static final ThreadPoolExecutor SOCKET_CLOSE;

protected final URI remoteLocation;

protected final URI localLocation;

protected final WireFormat wireFormat;


protected int connectionTimeout = 30000;

protected int soTimeout;

protected int socketBufferSize = 64 * 1024;

protected int ioBufferSize = 8 * 1024;

protected boolean closeAsync=true;

protected Socket socket;


榪欎釜綾諱腑鍖呭惈涓涓? socket 瀵硅薄鐨勬垚鍛樺彉閲忥紝鎵鏈夋垜浠彧瑕佺洃鎺? readCommand 鏂規硶錛岃繖涓柟娉曠殑榪斿洖鍊煎疄闄呬笂灝辨槸涓涓? ActivemqObjectMessage 瀵硅薄錛岃繖鏍峰氨鍙互鍦ㄤ竴涓柟娉曚笂鍔犳嫤鎴櫒灝卞彲浠ュ悓鏃舵崟鑾峰埌 ip 鍜屾秷鎭璞★紝涓ゅ叏鍏剁編錛侊紒錛?

protected Object readCommand() throws IOException {

return wireFormat.unmarshal(dataIn);

}

鍥犱負鍘熸湁 ESB 娑堟伅閫氶亾閮芥槸涓涓槦鍒? ESBQueue 錛屾墍浠ユ棤娉曢氳繃闃熷垪鍚嶇О鏉ョ‘瀹氭秷鎭被鍨嬶紝蹇呴』閫氳繃
ESBTransferObject 瀵硅薄鏉ュ彇寰楁秷鎭被鍨嬶細 destType 錛? offer 鐨勫尯闂存槸 1000-1008

public class ESBTransferObject implements Serializable {

private static final long serialVersionUID = -5975115234845303878L;

/**

* 娑堟伅浣擄紝鍘熷垯涓婂璞″簭鍒楀寲鍚庣殑XML鏁版嵁(String) 娉ㄦ剰浣跨敤XML1.1瑙勮寖銆?/p>

*/

private Object content;

/**

* 鐢ㄦ埛鑷畾涔夋暟鎹?/p>

*/

private Object userDefineData;

/**

* 鐩殑娑堟伅綾誨瀷

*/

private int destType = -1;


浣嗘槸錛屽湪鏈嶅姟鍣ㄧ騫舵病鏈? ESBTransferObject 瀵硅薄錛屾棤娉曞弽搴忓垪鍖栵紙 BTrace 涔熶笉鏀寔鍙嶅簭鍒楀寲鎿嶄綔錛夛紝鎵浠ユ病鏈夋柟娉曠畝鍗曞彇寰楁秷鎭被鍨嬩俊鎭紒錛侊紒

OK 錛屾垜涓嶅弽搴忓垪鍖栵紝鐩存帴鎷夸簩榪涘埗 byte[] 錛岀被鍨嬩俊鎭簲璇ユ槸鍦ㄥ浐瀹氫綅緗殑鍚э紵浣嗘槸鍙戠幇榪欎釜瀵硅薄
content 鍙橀暱瀛楃涓插畾涔夊湪綾誨瀷涔嬪墠錛岀被鍨嬩綅緗笉紜畾浜嗭紝鏅曞掑晩
涓嶆蹇冿紝杈撳嚭浜岃繘鍒舵暟鎹紝鏌蟲殫鑺辨槑鍟婏紝鍘熸潵瀵硅薄搴忓垪鍖栫殑鏃跺欙紝 primitive 鐨? field 閮芥槸绱ф帴鐫綾誨瀷淇℃伅鍐欏叆鐨勶紝鎵浠ワ紝綾誨瀷淇℃伅鏄湪鍥哄畾浣嶇疆鐨? 錛岀被鍨嬩俊鎭緇堟槸 255 錛? 256 涓や釜瀛楄妭錛堝疄闄呬笂鏄? 4 涓瓧鑺傦紝浣嗘槸鐩墠鎴戜滑鍙崰鏈? 2 涓級 Ok 錛岀紪鍐欎唬鐮侊紝嫻嬭瘯鐜榪愯涓涓嬶紝鏅曞掞紝绔熺劧鏈夋暟緇勬孩鍑猴紒

浣跨敤 BTrace 錛屾妸榪欎釜鏁扮粍鎵撳嵃涓嬫潵錛堣繖涓渶瑕佺偣鎶宸э紝 btrace 榪? for 閮戒笉鍏佽錛夛紝绔熺劧鍙戠幇 浣嶇疆鍋忕Щ鍒?/span> 205 錛? 206 浣嶇疆 錛岃繖涓湡鐨勪笉鐭ラ亾浠涔堝師鍥狅紝浼拌鏄鎴風鍙戦佺殑鏃跺欏帇緙╀簡錛岀畝鍗曚慨鏀瑰亸縐婚噺錛屾祴璇曡繍琛岋紝 ok 錛屾墍鏈夌殑娑堟伅綾誨瀷鍜? ip 鐨勫鐓ц〃鎵撳嵃鍑烘潵浜嗐?


package com.alibaba.btrace.script;

import static com.sun.btrace.BTraceUtils.*;

import com.sun.btrace.annotations.*;

@BTrace

public class AMQQueue2IP {


@OnMethod(clazz = "org.apache.activemq.transport.tcp.TcpTransport", //闇瑕佹嫤鎴殑綾誨悕

method = "readCommand", //闇瑕佹嫤鎴殑鏂規硶鍚?/p>

location = @Location(Kind.RETURN)) //鎷︽埅浣嶇疆錛屾柟娉曡繑鍥炴椂

public static void onTransportCommandExit(@Self Object transport, @Return Object command) { //鎹曡幏璋冪敤瀵硅薄鍜岃繑鍥炲?/p>

String commandName = str(command);

boolean isObjectMessage = (indexOf(commandName, "org.apache.activemq.command.ActiveMQObjectMessage") >= 0);

if (isObjectMessage) {

Object msg = command;

Object content = get(field(getSuperclass(getSuperclass(classOf(msg))), "content", false), msg);//鎹曡幏娑堟伅鍐呭byte[]

byte[] bs = (byte[]) get(field(classOf(content), "data", false), content);

if (bs.length >= 206) {

int off = getInt(field(classOf(content), "offset", false), content);

int code = (0xff00&bs[205]<<8)+(0xff&bs[206]); //杞崲205,206瀛楄妭涓烘秷鎭被鍨?/p>

//println(str(code));

Object socket = get(field(classOf(transport), "socket"), transport);

String address = str(socket); //鎴彇ip鍦板潃

int s = indexOf(address, "/");

int e = indexOf(address, ",");

int len = e - s;

String ip = substr(address, s + 1, e);

print(strcat(timestamp(),"---"));

println(strcat(strcat("ip: ", ip), strcat(" queueName: ", str(code))));

}

}

}

}


鎵撳嵃緇撴灉錛?/span>


2/3/10 12:38 PM---ip: 172.22.2.34 queueName: 2001

2/3/10 12:38 PM---ip: 172.22.2.41 queueName: 5001

2/3/10 12:38 PM---ip: 172.22.2.22 queueName: 5001

2/3/10 12:38 PM---ip: 172.22.2.47 queueName: 2001

2/3/10 12:38 PM---ip: 172.22.2.31 queueName: 2001

2/3/10 12:38 PM---ip: 172.22.2.13 queueName: 5001

2/3/10 12:38 PM---ip: 172.22.2.6 queueName: 5001

2/3/10 12:38 PM---ip: 172.22.2.48 queueName: 2001

2/3/10 12:38 PM---ip: 172.22.2.39 queueName: 2001


銆愯ˉ鍏呫?/span>

BTrace 鏄竴涓己澶х殑宸ュ叿錛屼絾鏄紝鍦ㄧ嚎涓婃嫻嬬殑鏃跺欒冭檻鏃舵晥鎬у拰瀹夊叏鎬э紝蹇呴』鏈変竴涓粡榪囨楠岀殑鑴氭湰搴撴墠鍙互瀹夊叏鍙婃椂鐨勫畾浣嶇郴緇熼棶棰?



]]>
主站蜘蛛池模板: 永城市| 筠连县| 蓝田县| 玉龙| 城口县| 平远县| 黄骅市| 宁德市| 永德县| 慈溪市| 柳河县| 巴东县| 雷山县| 大邑县| 靖边县| 韩城市| 宜宾市| 广昌县| 普兰店市| 遂平县| 伊春市| 浪卡子县| 彰化市| 布尔津县| 九龙坡区| 柳江县| 右玉县| 嘉黎县| 东海县| 南充市| 台中县| 扬州市| 信阳市| 云南省| 高阳县| 东港市| 鸡东县| 哈尔滨市| 正安县| 黄平县| 电白县|