ÓÑÇéÌáʾ£ºÈç¹û±¾ÍøÒ³´ò¿ªÌ«Âý»òÏÔʾ²»ÍêÕû£¬Çë³¢ÊÔÊó±êÓÒ¼ü¡°Ë¢Ð¡±±¾ÍøÒ³£¡
JMS¼òÃ÷½Ì³Ì(PDF¸ñʽ)-µÚ10²¿·Ö
¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿! Èç¹û±¾ÊéûÓÐÔĶÁÍ꣬ÏëÏ´μÌÐø½Ó×ÅÔĶÁ£¬¿ÉʹÓÃÉÏ·½ "Êղص½ÎÒµÄä¯ÀÀÆ÷" ¹¦ÄÜ ºÍ "¼ÓÈëÊéÇ©" ¹¦ÄÜ£¡
СÁËijЩÏûÏ¢´¦ÀíÅÅÐòʱ×ÊÔ´µÄʹÓᣡ¡¡¡
8¡£2¡£5¡¡ConnectionConsumer¡¡ÈçºÎʹÓÃServerSession¡¡¡¡
¡¡¡¡¡¡¡¡ÓÉJMS¡¡ÌṩÉÌʵÏÖµÄConnectionConsumer¡¡Ê¹ÓÃServerSession¡¡À´´¦ÀíÒ»µ½¶à¸öµ½´ïµÄÏû¡¡
Ï¢¡£°´ÒÔÏ·½Ê½×öÕâÏ×÷£º¡¡¡¡
¡¡¡¡¡¡¡¡z¡¡¡¡¡¡´ÓServerSessionPool¡¡Öеõ½Ò»¸öServerSession¡¡¡£¡¡¡¡
¡¡¡¡¡¡¡¡z¡¡¡¡¡¡µÃµ½ServerSession¡¡µÄSession¡¡¡£¡¡¡¡
¡¡¡¡¡¡¡¡z¡¡¡¡¡¡ÓÃÒ»¸ö»ò¶à¸öÏûÏ¢¼ÓÔØSession¡¡¡£¡¡¡¡
¡¡¡¡¡¡¡¡z¡¡¡¡¡¡È»ºóÆäËûServerSession¡¡À´Ïû·ÑÕâЩÏûÏ¢¡£¡¡¡¡
¡¡¡¡¡¡¡¡ÓÃÓÚQueueConnection¡¡µÄConnectionConsumer¡¡½«ËüµÄÏûÏ¢¼ÓÔص½QueueSession£¬Í¬Ñù£¬¡¡
ÓÃÓÚTopicConnection¡¡µÄConnectionConsumer¡¡¼ÓÔØTopicSession¡¡¡£¡¡¡¡
¡¡¡¡¡¡¡¡×¢Ò⣬JMS¡¡¡¡¡¡¡¡¡¡¡¡Ã»ÓÐ˵Ã÷¡¡ConnectionConsumer¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÈçºÎÓÃÏûÏ¢¼ÓÔØ¡¡Session¡¡¡£ÓÉÓÚ¡¡
ConnectionConsumer¡¡ºÍSession¡¡¶¼ÓÉͬһ¸öJMS¡¡ÌṩÉÌʵÏÖ£¬Òò´ËËüÃÇ¿ÉÒÔÓÃ˽ÓлúÖÆÍê³É¡¡
ÕâÖÖ¼ÓÔØ¡£¡¡¡¡
8¡£2¡£6¡¡Ó¦Ó÷þÎñÆ÷ÈçºÎʵÏÖServerSession¡¡¡¡
¡¡¡¡¡¡¡¡JMS¡¡Ã»ÓÐ˵Ã÷ServerSession¡¡µÄʵÏÖ¡£ÏÂÃæ³öÏÖµÄÆÕͨʵÏÖ½âÊÍÁËÕâ¸ö¸ÅÄ¡¡¡¡
¡¡¡¡¡¡¡¡z¡¡¡¡¡¡Ó¦Ó÷þÎñÆ÷Ϊ¡¡ServerSession¡¡¡¡¡¡¡¡¡¡¡¡´´½¨Ò»¸öỊ̈߳¬×¢²á¡¡ServerSession¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡µÄ¡¡runObject¡¡¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡runObject¡¡µÄʵÏÖÊÇÓ¦Ó÷þÎñÆ÷˽Óеġ£¡¡¡¡
¡¡¡¡¡¡¡¡z¡¡¡¡¡¡ServerSession¡¡µÄstart¡¡·½·¨µ÷ÓÃÏ̵߳Ästart¡¡·½·¨¡£ºÍËùÓеÄjava¡¡Ïß³ÌÒ»Ñù£¬µ÷ÓÃstart¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡³õʼ»¯Ï̵߳ÄÖ´Ðв¢µ÷ÓÃÏ̵߳ÄrunObject¡£ServerSession¡£start£¨ConnectionConsumer£©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡µÄµ÷ÓÃÕߺÍServerSession¡¡µÄrunObject¡¡ÏÖÔÚÔËÐÐÔÚ²»Í¬µÄÏß³ÌÖС£¡¡¡¡
¡¡¡¡¡¡¡¡z¡¡¡¡¡¡runObject¡¡¡¡½«×öһЩÄÚ²¿´¦ÀíÈ»ºóµ÷ÓûỰµÄ¡¡run£¨£©·½·¨¡£ÔÚ·µ»Øʱ£¬runObject¡¡¡¡½«¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ServerSession¡¡·µ»Ø¸øServerSessionPool¡¡È»ºó·µ»Ø¡£ÕâÖÕÖ¹ÁËServerSession¡¡Ï̵߳ÄÖ´¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÐУ¬²¢ÔÙ´ÎÑ»·Æô¶¯¡£¡¡¡¡
8¡£2¡£7¡¡½á¹û¡¡¡¡
¡¡¡¡¡¡¡¡JMS¡¡¶¨ÒåÁËÁé»îµÄ»úÖƽ«²¢·¢ÏûÏ¢Ïû·ÑµÄ¹¤×÷²ð·Ö³ÉÊʺÏÓÚÿ¸ö²ÎÓëÕߵĽÇÉ«¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡52¡¡/¡¡66¡¡¡¡
¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡53¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ó¦ÓóÌÐòÔ±ÌṩһÖÖÒ×ÓÚÊéдµ¥Ï̵߳ÄMessageListener¡¡ÊµÏÖ¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡JMS¡¡ÌṩÕß±£³Ö¶ÔÏûÏ¢µÄ¿ØÖÆÖ±µ½ËüÃDZ»×ª·¢µ½MessageListener¡£Õâ±£Ö¤ËüÊÇÔÚÏûϢȷ¡¡
ÈϵÄÖ±½Ó¿ØÖÆ֮ϡ£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ó¦Ó÷þÎñÆ÷¿ØÖÆConnectionConsumer¡¡µÄÉèÖú͹ÜÀíÓÃÓÚÖ´ÐÐMessageListener¡¡µÄÏ̡߳£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂͼ½âÊÍÁËÈý¸ö½ÇÉ«ºÍËüÃÇʵÏֵĶÔÏó¼äµÄ¹Øϵ¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂͼ½âÊÍÁËConnectionConsumer¡¡½«ÏûϢת·¢¸øMessageListener¡¡µÄ¹ý³Ì¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡53¡¡/¡¡66¡¡¡¡
¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡54¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
8¡£3¡¡¡¡XAConnectionFactory¡¡¡¡
¡¡¡¡¡¡¡¡Ä³Ð©Ó¦Ó÷þÎñÆ÷Ìṩ¶ÔÓÃÓÚ·Ö²¼Ê½ÊÂÎñµÄ×ÊÔ´·Ö×éÌṩ֧³Ö¡£ÎªÁËÔÚ·Ö²¼Ê½ÊÂÎñÖаüº¬¡¡
JMS¡¡ÊÂÎñ£¬Ó¦Ó÷þÎñÆ÷ÒªÇóJTA¡¡¼æÈÝJMS¡¡ÌṩÉÌ¡£JMS¡¡ÌṩÉÌÓÃJMS¡¡XAConnectionFactory¡¡±©¡¡
¶ËüµÄJTA¡¡Ö§³Ö£¬Ó¦Ó÷þÎñÆ÷ʹÓÃXAConnectionFactory¡¡À´´´½¨XAConnection¡¡¡£¡¡¡¡
¡¡¡¡¡¡¡¡XAConnectionFactory¡¡ÌṩÁ˺ÍConnectionFactory¡¡Ò»ÑùµÄÊÚȨѡÏî¡£¡¡¡¡
¡¡¡¡¡¡¡¡XAConnectionFactory¡¡¶ÔÏóÊÇJMS¡¡ÊܹÜÀí¶ÔÏ󣬾ÍÏñConnectionFactory¡¡¶ÔÏó¡£ÆÚÍûÓÃÓ¦¡¡
Ó÷þÎñÆ÷ʹÓÃJNDI¡¡ÕÒµ½ËüÃÇ¡£¡¡¡¡
8¡£4¡¡¡¡XAConnection¡¡¡¡
¡¡¡¡¡¡¡¡XAConnection¡¡Í¨¹ýÌṩ´´½¨XASession¡¡À©Õ¹ÁËConnection¡¡µÄÄÜÁ¦¡£¡¡¡¡
8¡£5¡¡¡¡XASession¡¡¡¡
¡¡¡¡¡¡¡¡XASession¡¡ÌṩÁË»ñÈ¡¿´ÆðÀ´ÏóÆÕͨ¡¡Session¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¶ÔÏóµÄ¶ÔÏóºÍ¿ØÖƻỰÊÂÎñÉÏÏÂÎĵġ¡
javax¡£transaction¡£xa¡£XAResource¡¡¶ÔÏó¡£XAResource¡¡µÄ¹¦Äܷdz£ÀàËÆÓÚ±ê×¼X/Open¡¡XA¡¡×ÊÔ´½Ó¡¡
¿Ú¶¨ÒåµÄ¹¦ÄÜ¡£¡¡¡¡
¡¡¡¡¡¡¡¡Ó¦Ó÷þÎñÆ÷ͨ¹ý»ñÈ¡XAResource¡¡À´¿ØÖÆXASession¡¡¡¡µÄÊÂÎñ·ÖÅä¡£ËüʹÓÃXAResource¡¡À´¡¡
½«»á»°·ÖÅä¸ø·Ö²¼Ê½ÊÂÎñ£¬×¼±¸ºÍÌá½»ÊÂÎñÉϵŤ×÷µÈµÈ¡£¡¡¡¡
¡¡¡¡¡¡¡¡XAResource¡¡Îª¶àÊÂÎñÉϵĽ»²æ¹¤×÷¡¢»Ö¸´´¦ÀíÖеÄÊÂÎñÁбíµÈµÈÌṩÁ˹«Æ½µÄרҵ¹¤¡¡
¾ß¡£JTA¡¡¸ÐÖªµÄJMS¡¡ÌṩÉϱØÐëÈ«²¿ÊµÏÖÕâ¸ö¹¦ÄÜ¡£Õâ¿ÉÒÔͨ¹ýʹÓÃÖ§³ÖXA¡¡¡¡µÄÊý¾Ý¿â·þÎñ¡¡
À´×öµ½£¬»òÕßJMS¡¡ÌṩÉÌ¿ÉÒÔÑ¡Ôñ´Ó»ù´¡¿ªÊ¼À´ÊµÏÖÕâ¸ö¹¦ÄÜ¡£¡¡¡¡
¡¡¡¡¡¡¡¡½«XASession¡¡µÄSession¡¡¸³¸øÓ¦Ó÷þÎñÆ÷µÄ¿Í»§¶Ë¡£Ö®ºó£¬Ó¦Ó÷þÎñÆ÷¿ØÖƺǫ́XASession¡¡
µÄÊÂÎñ¹ÜÀí¡£¡¡¡¡
¡¡¡¡¡¡¡¡µ«±ØÐë×¢ÒâµÄÊÇ£¬·Ö²¼Ê½ÊÂÎñÉÏÏÂÎIJ»»áËæ×ÅÏûÏ¢Á÷¶¯£»Ò²¾ÍÊÇ˵£¬½ÓÊÕÏûÏ¢µÄÊÂÎñºÍ¡¡
ºÍÉú²úÏûÏ¢µÄÊÂÎñ²»ÄÜÊÇͬһ¸ö¡£ÕâÊÇÒì²½ÏûÏ¢ºÍͬ²½´¦Àí¼äµÄ»ù±¾²î±ð¡£ÏûÏ¢Éú²úÕߺÍÏû¡¡
·ÑÕßʹÓÃÁ½ÖÖ·½Ê½À´½¨Á¢JMS¡¡ÌṩÉ̱£Ö¤Ò»´ÎÖ»ÓÐÒ»¸öÏûÏ¢±»×ª·¢µÄÄÜÁ¦¡£¡¡¡¡
¡¡¡¡¡¡¡¡ÔÙ´ÎÖØÉ꣬ÔÚSession¡¡ÖÐÉú²úºÍ/»òÏû·ÑÏûÏ¢µÄÐÐΪ¶¼¿ÉÒÔÊÇÊÂÎñÐԵġ£ÔÚ²»Í¬»á»°¼äÉú¡¡
²úºÍÏû·ÑÒ»¸öÌض¨ÏûÏ¢µÄÐÐΪ²»ÄÜÊÇÊÂÎñÐԵġ£¡¡¡¡
8¡£6¡¡¡¡JMS¡¡Ó¦Ó÷þÎñÆ÷½Ó¿Ú¡¡¡¡
¡¡¡¡¡¡¡¡PTP¡¡ºÍPub/Sub¡¡Á½¸öÓò¶¼ÌṩÁËËüÃÇ×Ô¼ºµÄJTS¡¡¸ÐÖªµÄJMS¡¡¹¤¾ß¡£¡¡¡¡
¡¡¡¡¡¡¡¡µ«ÊÇ£¬Ó¦µ±ÓÅÏÈʹÓù«¹²½Ó¿Ú¡£±í8©1¡¡ÁгöÁËJMS¡¡µÄ¹«¹²½Ó¿Ú¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡±í8©1¡¡ÓòÄÚ¿ÉÑ¡½Ó¿ÚµÄ¹Øϵ¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡JMS¡¡¹«¹²½Ó¿Ú¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PTP¡¡½Ó¿Ú¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Pub/Sub¡¡½Ó¿Ú¡¡¡¡
¡¡¡¡¡¡¡¡¡¡ServerSessionPool¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã»ÓÐÓòÌض¨µÄ½Ó¿Ú¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã»ÓÐÓòÌض¨µÄ½Ó¿Ú¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡ServerSession¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã»ÓÐÓòÌض¨µÄ½Ó¿Ú¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã»ÓÐÓòÌض¨µÄ½Ó¿Ú¡¡¡¡
¡¡¡¡¡¡¡¡ConnectionConsumer¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã»ÓÐÓòÌض¨µÄ½Ó¿Ú¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã»ÓÐÓòÌض¨µÄ½Ó¿Ú¡¡¡¡
¡¡¡¡¡¡¡¡XAConnectionFactory¡¡¡¡¡¡¡¡XAQueueConnectionFactory¡¡¡¡XATopicConnectionFactory¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡54¡¡/¡¡66¡¡¡¡
¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡55¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡XAConnection¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡XAQueueConnection¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡XATopicConnection¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡XASession¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡XAQueueSession¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡XATopicSession¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
9¡¡¡¡JMS¡¡ÑùÀý´úÂë¡¡¡¡
¡¡¡¡¡¡¡¡¡¡±¾Õ¸ø³öÁËһЩչʾJMS¡¡¿Í»§¶ËÈçºÎʹÓÃJMS¡¡API¡¡µÄ´úÂëÑùÀý¡£Ò²½âÊÍÁËÈçºÎʹÓü¸¸ö¡¡
ÏûÏ¢ÀàÐÍ¡£ÕâЩÀý×ÓʹÓÃÁËÖ§³ÖͳһÏûϢģÐ͵ķ½·¨£ºÕâЩÀý×ÓʹÓõã¶Ôµã»ò·¢²¼/¶©ÔĽø¡¡
Ðй¤×÷¡£ÓÃJMS¡¡API¡¡½øÐй¤×÷ÊÇÍƼöµÄ·½Ê½¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡ÔÚJMS¡¡¹æ·¶µÄÔçÆÚ°æ±¾ÖУ¬Ö»Ö§³ÖÏûÏ¢Óò£¨µã¶Ôµã»ò·¢²¼/¶©ÔÄ£©¸÷×ԵĽӿڣ¬ÇÒ¿Í»§¡¡
¶ËҪôʹÓõã¶ÔµãҪôʹÓ÷¢²¼/¶©ÔÄÀ´½øÐбà³Ì¡£ÏÖÔÚ£¬JMS¡¡¿Í»§¶Ë¿ÉÒÔʹÓÃJMS¡¡¹«¹²½Ó¡¡
¿Ú½øÐбà³Ì¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡ÔÚÀý×ÓÖУ¬¿Í»§¶ËÓ¦Ó÷¢ËͺͽÓÊÕ¹ÉƱ±¨¼ÛÐÅÏ¢¡£¿Í»§¶ËÓ¦ÓôӹÉƱ±¨¼Û·þÎñÖнÓÊÕÏû¡¡
Ï¢¡£¹ÉƱ±¨¼Û·þÎñÔÚÕâ¸öÀý×ÓÖÐûÓÐÃèÊö¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡ÎªÁ˼ò»¯Õâ¸öÀý×Ó£¬Ã»ÓжÔÒì³£½øÐд¦Àí¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡±¾ÕÂÃèÊöÁËΪ·¢ËͺͽÓÊÕÏûÏ¢¶ø´´½¨ÕýÈ·»·¾³µÄ²½Öè¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡ÔÚÃèÊöÁË»ù±¾µÄ¹¦Äܺ󣬱¾ÕÂÃèÊöÈçºÎÖ´ÐÐһЩÆäËûµÄ¹«¹²¹¦ÄÜ£¬ÀýÈçʹÓÃÏûϢѡÔñÆ÷¡£¡¡¡¡
9¡£1¡¡¡¡×¼±¸·¢ËͺͽÓÊÕÏûÏ¢¡¡¡¡
¡¡¡¡¡¡¡¡¡¡ÏÂÃæÊǽ¨Á¢Á¬½ÓÈ»ºó×¼±¸·¢ËͺͽÓÊÕÏûÏ¢µÄ»ù±¾²½Öè¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡z¡¡¡¡¡¡»ñµÃConnectionFactory¡¡ºÍDestination¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡z¡¡¡¡¡¡´´½¨Connection¡¡ºÍSession¡¡¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡z¡¡¡¡¡¡´´½¨MessageConsumer¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡z¡¡¡¡¡¡´´½¨MessageProducer¡£¡¡¡¡
9¡£1¡£1¡¡»ñÈ¡ConnectionFactory¡¡¡¡
¡¡¡¡¡¡¡¡¡¡ÏûÏ¢Éú²úÕߺÍÏûÏ¢Ïû·ÑÕߣ¨·¢ËÍÕߺͽÓÊÕÕߣ©¶¼ÐèÒªµÃµ½ConnectionFactory£¬²¢Ê¹ÓÃËü¡¡
À´½¨Á¢Connection¡¡ºÍSession¡¡¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡Í¨³££¬¹ÜÀíÔ±ÒѾΪJMS¡¡¿Í»§¶Ë´´½¨ºÍÅäÖúÃÁËConnectionFactory¡¡¡£¿Í»§¶Ë³ÌÐòͨ³£Ê¹¡¡
ÓÃJNDI¡¡API¡¡À´²éÕÒConnectionFactory¡¡¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡import¡¡javax¡£naming¡£*£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡import¡¡javax¡£jms¡£*£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡ConnectionFactory¡¡connectionFactory£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡Context¡¡messaging¡¡=¡¡new¡¡InitialContext£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡connectionFactory¡¡=¡¡£¨ConnectionFactory£©¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡messaging¡£lookup£¨¡¨ConnectionFactory¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡55¡¡/¡¡66¡¡¡¡
¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡56¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
9¡£1¡£2¡¡»ñÈ¡Destination¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¹ÜÀíÔ±ÒѾ´´½¨ºÍÅäÖÃÁËÒ»¸öÃû×ÖΪ¡°StockQueue¡¡¡±µÄQueue£¬ËüÊǹÉƱ±¨¼ÛÏûÏ¢±»·¢¡¡
ËͺͽÓÊյĵط½¡£Í¬Ñù£¬¿ÉÒÔʹÓÃJNDI¡¡API¡¡À´²éÕÒÄ¿µÄµØ¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡Queue¡¡stockQueue£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡stockQueue¡¡=¡¡£¨Queue£©messaging¡£lookup£¨¡¨StockSource¡¨£©£»¡¡¡¡
9¡£1¡£3¡¡´´½¨Connection¡¡¡¡
¡¡¡¡¡¡¡¡¡¡Ôڵõ½ConnectionFactory¡¡Ö®ºó£¬¿Í»§¶Ë³ÌÐòʹÓÃËüÀ´´´½¨Connection¡¡¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡Connection¡¡connection£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡connection¡¡=¡¡ConnectionFactory¡£createConnection£¨£©£»¡¡¡¡
9¡£1¡£4¡¡´´½¨Session¡¡¡¡
¡¡¡¡¡¡¡¡¡¡Ôڵõ½¡¡Connection¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ö®ºó£¬¿Í»§¶Ë³ÌÐòʹÓÃËüÀ´´´½¨¡¡Session¡¡¡£Õâ¸ö¡¡Session¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÓÃÓÚ´´½¨¡¡
MessageProducer¡¡¡¡£¨·¢ËÍÏûÏ¢£©»òMessageConuser¡¡¡¡£¨½ÓÊÕÏûÏ¢£©¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡Connection¡£createSession¡¡·½·¨ÓÐÁ½¸ö²ÎÊý£º¡¡¡¡
¡¡¡¡¡¡¡¡¡¡z¡¡¡¡¡¡¡¡Ò»¸ö±íʾ»á»°ÊÇ·ñÊÇÊÂÎñÐԵIJ¼¶û¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡z¡¡¡¡¡¡¡¡ÏûϢȷÈÏģʽ¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡Session¡¡session£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡/*¡¡Session¡¡is¡¡not¡¡transacted£»¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡*¡¡¡¡¡¡uses¡¡AUTO_ACKNOWLEDGE¡¡for¡¡message¡¡¡¡
¡¡¡¡¡¡¡¡¡¡*¡¡¡¡acknowledgement¡¡¡¡
¡¡¡¡¡¡¡¡¡¡*/¡¡¡¡
¡¡¡¡¡¡¡¡¡¡session¡¡=¡¡connection¡£createSession£¨false£»¡¡Session¡£AUTO_ACKNOWLEDGE£©£»¡¡¡¡
9¡£1¡£5¡¡´´½¨MessageProducer¡¡¡¡
¡¡¡¡¡¡¡¡¡¡Ôڵõ½¡¡Session¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ºó£¬¿Í»§¶Ë³ÌÐòʹÓá¡Session¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡À´´´½¨¡¡MessageProducer¡¡¡£Õâ¸ö¡¡
MessageProducer¡¡¶ÔÏóÓÃÓÚÏòÄ¿µÄµØ·¢ËÍÏûÏ¢¡£Í¨¹ýʹÓÃSession¡£createProducer¡¡·½·¨À´´´½¨¡¡
MessageProducer£¬²ÎÊýÊÇÏûÏ¢±»·¢Ë͵ÄÄ¿µÄµØ¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡MessageProducer¡¡sender£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡/*¡¡Value¡¡in¡¡stockQueue¡¡previously¡¡looked¡¡up¡¡in¡¡the¡¡JNDI¡¡¡¡
¡¡¡¡¡¡¡¡¡¡*¡¡¡¡createProducer¡¡takes¡¡a¡¡Destination¡¡¡¡
¡¡¡¡¡¡¡¡¡¡*/¡¡¡¡
¡¡¡¡¡¡¡¡¡¡sender¡¡=¡¡session¡£createProducer£¨stockQueue£©£»¡¡¡¡
9¡£1¡£6¡¡´´½¨MessageConsumer¡¡¡¡
¡¡¡¡¡¡¡¡¡¡ÏûÏ¢¿ÉÒÔ±»Í¬²½»òÒì²½µÄÏû·Ñ¡£Õâ¸öÀý×ÓչʾÁËÈçºÎ´´½¨Í¬²½Ïû·ÑÏûÏ¢µÄÏûÏ¢Ïû·ÑÕß¡£¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡56¡¡/¡¡66¡¡¡¡
¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡57¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
²Î¼û9¡£3¡£1¡¡¡¡¡°Òì²½½ÓÊÕÏûÏ¢¡±Á˽âÈçºÎÒì²½Ïû·ÑÏûÏ¢¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡MessageConsumer¡¡¡¡¡¡¡¡ÓÃÓÚ´ÓÄ¿µÄµØ½ÓÊÕÏûÏ¢£¬ÔÚÕâ¸öÀý×ÓÖÐÊÇ¡°StockQueue¡¡¡±¡£Óá¡
Session¡£createConsumer¡¡·½·¨À´´´½¨MessageConsumer£¬²ÎÊýÊǽÓÊÕÏûÏ¢µÄÄ¿µÄµØ¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡MessageConsumer¡¡receiver£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡/*¡¡Value¡¡in¡¡stockQueue¡¡previously¡¡looked¡¡up¡¡in¡¡the¡¡JNDI¡¡¡¡
¡¡¡¡¡¡¡¡¡¡*¡¡¡¡createConsumer¡¡takes¡¡a¡¡Destination¡¡¡¡
¡¡¡¡¡¡¡¡¡¡*/¡¡¡¡
¡¡¡¡¡¡¡¡¡¡receiver¡¡=¡¡session¡£createConsumer£¨stockQueue£©£»¡¡¡¡
9¡£1¡£7¡¡Æô¶¯ÏûϢת·¢¡¡¡¡
¡¡¡¡¡¡¡¡¡¡µ½ÏÖÔÚΪֹ£¬ÏûÏ¢µÄת·¢»¹ÊDZ»½ûÖ¹µÄ£¬ÒÔ±ãÇ°ÃæµÄÉèÖò»»á±»Ò첽ת·¢µÄÏûÏ¢´ò¶Ï¡£¡¡
ÏÖÔÚÉèÖÃÒѾÍê³É£¬¿ÉÒÔ¸æËßConnection¡¡¿ªÊ¼ÏòMessageConsumer¡¡×ª·¢ÏûÏ¢ÁË¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡connection¡£start£¨£©£»¡¡¡¡
9¡£1¡£8¡¡Ê¹ÓÃTextMessage¡¡¡¡
¡¡¡¡¡¡¡¡¡¡Óм¸¸öÏûÏ¢¸ñʽ¡£ÔÚÕâ¸öÀý×ÓÖУ¬¹ÉƱ±¨¼ÛÏûÏ¢×÷ΪÎı¾´®±»·¢ËÍ¡£¿Í»§¶Ë°´Îı¾´®¶Á¡¡
È¡ºÍչʾÕâ¸öÏûÏ¢¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡ÏÂÃæµÄ´úÂë½âÊÍÁËÈçºÎ´´½¨ÕâÑùµÄÏûÏ¢£º¡¡¡¡
¡¡¡¡¡¡¡¡¡¡String¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡stockData£»¡¡¡¡¡¡¡¡/*¡¡Stock¡¡information¡¡as¡¡a¡¡string¡¡*/¡¡¡¡
¡¡¡¡¡¡¡¡¡¡TextMessage¡¡¡¡¡¡message£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡/*¡¡Set¡¡the¡¡message¡¯s¡¡text¡¡to¡¡be¡¡the¡¡stockData¡¡string¡¡*/¡¡¡¡
¡¡¡¡¡¡¡¡¡¡message¡¡=¡¡session¡£createTextMessage£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡message¡£setText£¨stockData£©£»¡¡¡¡
9¡£2¡¡¡¡·¢ËͺͽÓÊÕÏûÏ¢¡¡¡¡
¡¡¡¡¡¡¡¡¡¡ÏÖÔÚÒѾÍê³ÉÁËSession¡¡µÄÉèÖã¬Äã¿ÉÒÔ·¢ËͺͽÓÊÕÏûÏ¢ÁË¡£±¾½ÚÃèÊöÁËÈçºÎ£º¡¡¡¡
¡¡¡¡¡¡¡¡¡¡z¡¡¡¡¡¡´´½¨ÏûÏ¢¡¡¡¡
¡¡¡¡¡¡¡¡¡¡z¡¡¡¡¡¡¡¡·¢ËÍÏûÏ¢¡¡¡¡
¡¡¡¡¡¡¡¡¡¡z¡¡¡¡¡¡¡¡Í¬²½½ÓÊÕÏûÏ¢¡¡¡¡
9¡£2¡£1¡¡·¢ËÍÏûÏ¢¡¡¡¡
¡¡¡¡¡¡¡¡¡¡ÎªÁË·¢ËÍÏûÏ¢£¬Ê¹ÓÃMessageProducer¡£send¡¡·½·¨£¬²ÎÊýÊÇMessage¡¡¶ÔÏ󡣡¡¡¡
¡¡¡¡¡¡¡¡¡¡/*¡¡Send¡¡the¡¡message¡¡*/¡¡¡¡
¡¡¡¡¡¡¡¡¡¡sender¡£send£¨message£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡57¡¡/¡¡66¡¡¡¡
¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡58¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
9¡£2¡£2¡¡Í¬²½½ÓÊÕÏûÏ¢¡¡¡¡
¡¡¡¡¡¡¡¡¡¡ÎªÁ˽ÓÊÕQueue¡¡ÀïµÄÏûÏ¢£¬Äã¿ÉÒÔʹÓÃMessageConsumer¡£receive¡¡·½·¨¡£Õâ¸ö·½·¨µ÷Óá¡
ÔÚÏûÏ¢µ½´ïQueue¡¡Ö®Ç°¿ÉÄÜ×èÈû¡£Õâ¸ö·½·¨Ò²¿ÉÒÔÓÃÓÚ´ÓTopic¡¡¡¡ÖнÓÊÕÏûÏ¢¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡TextMessage¡¡stockMessage£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡stockMessage¡¡=¡¡£¨TextMessage£©receiver¡£receive£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡ÎªÁËÏÞÖÆ¿Í»§¶Ë×èÈûµÄʱ¼ä³¤¶È£¬Ê¹Óá¡receive¡¡·½·¨µÄ³¬Ê±²ÎÊý¡£Èç¹ûÔÚ³¬Ê±µ½ÆÚʱ»¹¡¡
ûÓÐÏûÏ¢µ½´ï£¬ÄÇôreceive¡¡·½·¨·µ»Ø¡£³¬Ê±²ÎÊý°´ºÁÃë¼Æʱ¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡TextMessage¡¡stockMessage£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡/*¡¡Wait¡¡4¡¡seconds¡¡for¡¡a¡¡message¡¡*/¡¡¡¡
¡¡¡¡¡¡¡¡¡¡TextMessage¡¡=¡¡£¨TextMessage£©receiver¡£receive£¨4000£©£»¡¡¡¡
9¡£2¡£3¡¡½â°üTextMessage¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¹ÉƱ±¨¼ÛÐÅϢʹÓá¡TextMessage¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡·¢ËÍ¡£ÎªÁË´ÓÏûÏ¢Öеõ½Õâ¸öÐÅÏ¢£¬Ê¹Óá¡
TextMessage¡£getText¡¡·½·¨¡£ËüÒÔ×Ö·û´®·µ»ØÏûÏ¢µÄÄÚÈÝ¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡String¡¡newStockData£»¡¡¡¡¡¡¡¡/*¡¡Stock¡¡information¡¡as¡¡a¡¡string¡¡*/¡¡¡¡
¡¡¡¡¡¡¡¡¡¡newStockData¡¡=¡¡message¡£getText£¨£©£»¡¡¡¡
9¡£3¡¡¡¡ÆäËûÏûÏ¢ÌØÐÔ¡¡¡¡
¡¡¡¡¡¡¡¡¡¡±¾½Ú²»½öÌṩÁË»ù±¾µÄÏûÏ¢¹¦ÄÜ£¬¶øÇÒ»¹ÃèÊöÁËÈçºÎÖ´ÐÐijЩÆäËûµÄ¹«¹²ÏûÏ¢¹¦ÄÜ£º¡¡¡¡
¡¡¡¡¡¡¡¡¡¡z¡¡¡¡¡¡¡¡´´½¨Òì²½MessageListener¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡z¡¡¡¡¡¡¡¡Ê¹ÓÃÏûϢѡÔñÆ÷¹ýÂËÏûϢת·¢¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡z¡¡¡¡¡¡¡¡´´½¨Topic¡¡µÄÓÀ¾Ã¶©ÔÄ¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡z¡¡¡¡¡¡¡¡¶ÔʹÓÃÓÀ¾Ã¶©ÔĵÄTopic¡¡½øÐÐÖØÐÂÁ¬½Ó¡£¡¡¡¡
9¡£3¡£1¡¡Òì²½½ÓÊÕÏûÏ¢¡¡¡¡
¡¡¡¡¡¡¡¡¡¡ÎªÁËÔÚÏûÏ¢±»×ª·¢µ½ÏûÏ¢Ïû·ÑÕßʱÒì²½µÄ½ÓÊÕÏûÏ¢£¬¿Í»§¶Ë³ÌÐòÐèÒª´´½¨ÊµÏÖÁË¡¡
MessageListener¡¡¡¡¡¡¡¡¡¡½Ó¿ÚµÄÏûÏ¢¼àÌýÆ÷¡£±¾ÀýÖС¡MessageListener¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡½Ó¿ÚµÄʵÏÖ³ÆΪ¡¡
StockListener¡£java£¬ÀàËÆÓÚÏÂÃæµÄ´úÂ룺¡¡¡¡
¡¡¡¡¡¡¡¡¡¡import¡¡javax¡£jms¡£*£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡public¡¡class¡¡StockListener¡¡implements¡¡MessageListener¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡public¡¡void¡¡onMessage£¨Message¡¡message£©¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡/*¡¡Unpack¡¡and¡¡handle¡¡the¡¡messages¡¡received¡¡*/¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡£¡£¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡£ý¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¿Í»§¶Ë³ÌÐò°´ÏÂÃæµÄ·½Ê½½«Õâ¸öMessageListener¡¡¶ÔÏó×¢²áµ½MessageConsumer¡¡¶ÔÏ󣺡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡58¡¡/¡¡66¡¡¡¡
¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡59¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡StockListener¡¡myListener¡¡=¡¡new¡¡StockListener£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡/*¡¡Receiver¡¡is¡¡MessageConsumer¡¡object¡¡*/¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡receiver¡£setMessageListener£¨myListener£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡Connection¡¡¡¡±ØÐë±»Æô¶¯ÒÔÓ½Ó¿ªÊ¼µÄÏûϢת·¢¡£µ±ÏûÏ¢±»·¢²¼µ½¡¡Queue¡¡¡¡Ê±»áÒì²½µÄͨ¡¡
ÖªMessageListener¡£Õâͨ¹ýMessageListener¡¡½Ó¿ÚµÄonMessage¡¡·½·¨ÊµÏÖ¡£ÓÉ¿Í»§¶Ë¸ºÔ𴦡¡
ÀíÏûÏ¢¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡public¡¡void¡¡onMessage£¨Message¡¡message£©¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡String¡¡newStockData£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡/*¡¡Unpack¡¡and¡¡handle¡¡the¡¡messages¡¡received¡¡*/¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡newStockData¡¡=¡¡message¡£getText£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡if£¨¡£¡£¡££©¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡£û¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡/*¡¡Logic¡¡related¡¡to¡¡the¡¡data¡¡*/¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡¡¡
9¡£3¡£2¡¡Ê¹ÓÃÏûϢѡÔñÆ÷¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡ÔÚÕâ¸öÀý×ÓÖУ¬¿Í»§¶Ë³ÌÐòÖ»¶Ô¼¼ÊõÏà¹ØµÄ¹ÉƱ¸ÐÐËȤ¡£ÏûÏ¢µÄ·¢ËÍÕßÏòÏûÏ¢µÄÊôÐÔÖС¡
ÉèÖÃÒ»¸ö³ÆΪStockSector¡¡µÄÊôÐÔ¡£ËüµÄÖµ°üÀ¨¡°Technology¡¡¡±£¬¡°Financial¡±£¬¡°Manufacturing¡±£»¡¡
¡¡¡°Emerging¡±ºÍ¡°Global¡¡¡±¡£ÏûÏ¢·¢ËÍÕßͨ¹ýʹÓÃMessage¡£setStringProperty¡¡·½·¨À´ÉèÖÃÕâЩ¡¡
ÊôÐÔÖµ¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡String¡¡stockData£»¡¡¡¡¡¡¡¡/*¡¡Stock¡¡information¡¡as¡¡a¡¡String¡¡*/¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡TextMessage¡¡message£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡/*¡¡Set¡¡the¡¡message¡¯s¡¡text¡¡to¡¡be¡¡the¡¡stockData¡¡string¡¡*¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡message¡¡=¡¡session¡£createTextMessage£¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡message¡£setText£¨stockData£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡/*¡¡Set¡¡the¡¡message¡¡property¡¡¡®StockSector¡¯¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡message¡£setStringProperty£¨¡¨StockSector¡¨£»¡¡¡¨Technology¡¨£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡µ±½ÓÊÕ¹ÉƱ±¨¼ÛÏûÏ¢¿Í»§¶Ë³ÌÐò¡¡MessageConsumer¡¡±»´´½¨Ê±£¬Ëü¿ÉÒÔ´´½¨Ò»¸öÏûϢѡ¡¡
ÔñÆ÷×Ö·û´®À´¾ö¶¨Ëü½«½ÓÊÕÄÄЩÏûÏ¢¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡String¡¡selector£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡selector¡¡=¡¡new¡¡String£¨¡¨£¨StockSector¡¡=¡¡¡®Technology¡¯£©¡¨¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡Õâ¸ö×Ö·û´®ÔÚ´´½¨MessageConsumer¡¡Ê±Ö¸¶¨¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡MessageConsumer¡¡receiver£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡receiver¡¡=¡¡session¡£createConsumer£¨stockQueue£»¡¡selector£©£»¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¿Í»§¶Ë³ÌÐòÖ»½ÓÊÕºÍTechnology¡¡Ïà¹ØµÄÏûÏ¢¡£¡¡¡¡
9¡£3¡£3¡¡Ê¹ÓÃÓÀ¾Ã¶©ÔÄ¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡ÓÀ¾Ã¶©ÔÄÓÃÓÚ´ÓTopic¡¡½ÓÊÕÏûÏ¢¡£µ±JMS¡¡¡¡¿Í»§¶Ë´´½¨ÓÀ¾Ã¶©ÔÄʱ£¬¿Í»§¶ËÄܹ»´ÓTopic¡¡
¶Ï¿ªÁ¬½Ó¡£µ±¿Í»§¶Ë³ÌÐòÖØÐÂÁ¬½Óʱ£¬Ëü¿ÉÒÔÊÕµ½¶Ï¿ªÁ¬½Óºóµ½´ïµÄÏûÏ¢¡£ÔÚÕâ¸öÀý×ÓÖУ¬¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡59¡¡/¡¡66¡¡¡¡
¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Page¡¡60¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
Destination¡¡Ìṩ¶ÔÏûÏ¢¸üеÄ֪ͨ¡£¡¡¡¡
9¡£3¡£3¡£1¡¡´´½¨ÓÀ¾Ã¶©ÔÄ¡¡¡¡
¡¡¡¡¡¡¡¡¡¡ÏÂÃæµÄÀý×Ó´´½¨ÁË´ÓTopic¡¡»ñÈ¡ÏûÏ¢µÄÓÀ¾Ã¶©ÔÄ¡£Ê×ÏÈ£¬¿Í»§¶Ë³ÌÐò±ØÐëÖ´Ðг£¹æµÄÉè¡¡
Öò½Ö裬²éÕÒConnectionFactory¡¡ºÍDestination£¬´´½¨Connection¡¡ºÍSession£¬Èç½Ú9¡£1¡¡¡°×¼±¸¡¡
·¢ËͺͽÓÊÕÏûÏ¢¡±ÖÐËùÊö¡£¡¡¡¡
¡¡¡¡¡¡¡¡¡¡im
¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿!
ÎÂÜ°Ìáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾Ñé½±Àø£¬ÈÏÕæдԴ´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾Ñé½±ÀøŶ£¡