ÄúÏÖÔÚµÄλÖÃÊÇ£º Èí¼þ > ¿ª·¢ÕßÍøÂç > ÕýÎÄ


-Win xpÖеĶàÖÖÍøÂç
-ÊÔÑéÊÔÑéÊÔÑéÊÔÑé
-ÓÃFreehandʵÏÖλͼʸÁ¿»¯
-ÍøÂçµç»°ÃæÃæ¹Û

Enterprise JavaBeansµ¼ÂÛÁù
2000-10-29¡¤ ¡¤»Æ¶¬¡¤¡¤Öйú´úÂëÁªÃËÐÂÎÅ×é

b>3£®ÊÂÎñ

CORBA OTS

¡¡¡¡EJBµÄÊÂÎñÄ£ÐÍÓëOTSÀàËÆ¡£ÊÂʵÉÏ£¬CORBA¼æÈݵÄEJB·þÎñÆ÷±ØÐëÌṩһ¸öOTS¼æÈݵÄÊÂÎñ·þÎñ¡£Àí½âOTSÈçºÎ¹¤×÷ÓÐÖúÓÚÀí½âEJBÖÐÊÂÎñµÄ¹¤×÷·½Ê½¡£

¶¨ÒåÊÂÎñ

¡¡¡¡ Ò»¸öÊÂÎñÕýʽµØ¶¨ÒåÁËÒ»¸öÔ­×Ó¹¤×÷µ¥Î»¡£Ò»¸öÊÂÎñÖпÉÒÔ°üº¬¶à¸ö²Ù×÷£¬µ±ÊÂÎñÖÕֹʱ£¬ËùÓÐÖ´ÐеIJÙ×÷»òÕßÍêȫִÐлòÕßÍêÈ«·ÏÆú¡£Õâ³ÆÎªÌá½»ºÍ»Ø¹ö¡£

¡¡¡¡ÔÚÊý¾Ý¿âÓ¦ÓÃÖй㷺µØÊ¹ÓÃÊÂÎñ¡£ºÃµÄÊý¾Ý¿â²úÆ·¶ÔÊÂÎñÌṩºÜÇ¿µÄÖ§³Ö¡£Ò»¸öÊÂÎñÖзÃÎʵļǼÔÚÕû¸öÊÂÎñ³ÖÐøÆÚ¼ä±£³ÖËø¶¨×´Ì¬¡£»ùÓÚÊý¾Ý¿â²úÆ·ÔÚÊÂÎñ¿ªÊ¼Ê±¿ÉÒÔÑ¡¶¨²»Í¬µÄËø¶¨×´Ì¬¡£Ñ¡¶¨µÄËø¶¨¼¶±ðÓ¦ÔÚÆäËüµÄÊÂÎñÖÐÓÅ»¯²Ù×÷µÄ²¢·¢·ÃÎÊʱ±£Ö¤Êý¾ÝµÄÍêÕûÐÔ¡£ÍøÂçÉϵÄÊÂÎñ¿ÉÄÜÊÇ·Ö²¼Ê½µÄ£¬ÀýÈç¿Í»§¶Ë¿ÉÄÜÔÚµ¥¸öÊÂÎñÖзÃÎÊÁ½¸ö²»Í¬µÄÊý¾Ý¿â¡£ÎªÁËÖ§³Ö·Ö²¼Ê½ÊÂÎñ£¬´ó¶àÊýÊÂÎñ¹ÜÀíÆ÷£¨°üÀ¨Êý¾Ý¿â£©Ö§³ÖÁ½¶ÎÌá½»¡£ÔÚÁ½¶ÎÌύЭÒéÖУ¬ÊÂÎñ¹ÜÀíÆ÷ÔÚ×¼±¸Ìá½»ÊÂÎñǰÊ×ÏÈѯÎÊËùÓеÄÊÂÎñ²ÎÓëÕߵŤ×÷ÊÇ·ñÍê³É¡£ÕâÊÇЭÒéµÄµÚÒ»½×¶Î¡£Ò»µ©Ã¿¸ö²ÎÓëÕßͬÒâÌá½»£¬µÚ¶þ½×¶Î²Å»á¿ªÊ¼¡£ÊÂÎñ¹ÜÀíÆ÷·¢ËͶÀÁ¢µÄÌá½»²Ù×÷µÄÃüÁî¡£

OTSÖеĹؼü²¿¼þ

¡¡¡¡ÎªÁ˸üºÃµØÀí½âOTSÈçºÎ¹¤×÷£¬ÎÒÃÇÐèÒªÏÈ¿´¿´Æä¹Ø¼ü²¿¼þ¡£ÒÔϵIJ¿¼þ¿ÉÒÔÖ±½ÓµØÓ³Éäµ½EJB£¬¶øÀí½âÕâЩ²¿¼þÈçºÎÔÚOTSÖй¤×÷ÄÜʹÎÒÃǸüºÃµØÀí½âEJBÖеÄÊÂÎñ¡£
Control
terminator
Coordinator
Resource
Synchronization

¡¡¡¡ÏÂͼʾ³öÁËÕâЩ¶ÔÏóÖж¨ÒåµÄÖØÒª·½·¨£¬ÒÔ¼°ÔÚÊÂÎñÌåϵÖÐÕâЩ¶ÔÏóµÄ×÷Óá£



¡¡¡¡ÐéÏß¿òÄÚÊÇÒ»¸öÊÂÎñ¡£ÊÂÎñÖÐËùÓеĶÔÏó¶¼²ÎÓëÁËÕâ¸öÊÂÎñ£¬Ìá½»ºÍ»Ø¹ö¶ÔËùÓеÄResource¶ÔÏó¶¼ÊÊÓᣠControl¶ÔÏó´ú±íÒ»¸öÊÂÎñ¡£´Ó¸Ã¶ÔÏóÎÒÃÇ¿ÉÒԵõ½CoordinatorºÍTerminator ¡£EJB¿ª·¢Õß²»»á¿´µ½Control¶ÔÏó£¬ÈÝÆ÷´ú±íbeanÓÃControl¶ÔÏóÀ´¹ÜÀíÊÂÎñ¡£

¡¡¡¡µ±Ò»¸öbean·½·¨·µ»ØÇҸ÷½·¨ÔÚ²¿ÊðÃèÊö·ûÖÐÉùÃ÷ÔÚ·½·¨·µ»ØÇ°ÐèÌá½»¸ÃÊÂÎñʱ£¬ÈÝÆ÷Ò²ÓÃTerminatorÀ´Ìá½»»ò»Ø¹öÊÂÎñ¡£Ìá½»»ò»Ø¹öÊÂÎñʱ£¬ËùÓÐÊÂÎñÖеĶÔÏó¶¼»áÏàÓ¦µÄÌá½»»ò»Ø¹ö¡£

¡¡¡¡ResourceÊǰüº¬ÊÂÎñ״̬µÄ¶ÔÏó¡£ÀýÈ磬Ëü¿ÉÄÜÊÇÒ»¸öÊý¾Ý¿âÁ¬½Ó¡£ÔÚÕâ¸ö¶ÔÏóÉϵ÷ÓÃcommit()»á¸üÐÂÊý¾Ý¿â¡£Ò»¸örollback()µ÷Óûá»Ö¸´¸ÃÊÂÎñ¿ªÊ¼Ê±Í¨¹ýÕâ¸öÁ¬½Ó¶ÔÊý¾Ý×÷µÄÈκθı䡣Íê³ÉÌá½»»ò»Ø¹öº Êý¾Ý¿âÖÐÏàÓ¦µÄ¼Ç¼¾Í»á½âËø¡£Ó¦ÓõÄËø¼¶±ð»áÔÚ²¿ÊðÃèÊö·ûÖÐÖ¸¶¨¡£Õâ¸ö¶ÔÏóµÄÍêÈ«µÄ·½·¨¼¯»áÏÔʾÕâЩ¶ÔÏóʵÏÖÁËÁ½¶ÎÌύЭÒ飬ʹµÃÿһ¸ö¶ÔÏó¶¼ÓÐȨ¾ö¶¨Õû¸öÊÂÎñÊÇÌá½»»¹Êǻعö¡£µ±Ò»¸öÊÂÎñÍê³Éʱ£¬²»ÂÛÊÇÌá½»»¹Êǻعö£¬¶¼ÒªÍ¨ÖªSynchronization¶ÔÏó¡£ÓëResource²»Í¬£¬Ëü²¢²»²ÎÓëÁ½¶ÎÌύЭÒ飬ËùÒÔÎÞȨ±í¾öÒ»¸öÊÂÎñÓ¦¸ÃÌá½»»¹Êǻعö¡£ÔÚÊÂÎñÖÐËü°çÑÝÒ»¸ö±»¶¯µÄ½ÇÉ«¡£ CoordinatorÊÇʹÕâÒ»Çй¤×÷Æð×÷ÓõĶÔÏó¡£ResourceºÍSynchronizationͨ¹ý¸Ã¶ÔÏó×¢²áµ½ÊÂÎñÖС£Bean²»Ö±½Ó·ÃÎÊÕâ¸ö¶ÔÏó¡£ Transaction-aware objects that are intended for use with EJB will transparently obtain a reference to the current transaction"s Coordinator to register itself.

ÊÂÎñºÍ¿É»Ö¸´µÄ¶ÔÏó

¡¡¡¡ÔÚOTSÖÐÊÂÎñºÍ¿É»Ö¸´µÄ¶ÔÏó²»Í¬¡£Õâ¸öÇø±ðÓëEJBÓйء£ÔÚCORBAservice? OTS¹æ·¶ÖÐÏêϸµØ¶¨ÒåÁËÕâЩÀàÐÍ£¬¼òµ¥µØËµ£¬¿É»Ö¸´¶ÔÏóÓÐcommit()ºÍrollback()·½·¨£¬ÔÊÐíÊÂÎñÖ±½ÓµØ²Ù×ÝËü×Ô¼ºµÄ״̬ºÍÐÐΪ¡£Ò»¸öÊÂÎñ¶ÔÏóûÓÐÕâЩ·½·¨£¬²»Äܱ»ÊÂÎñÓ°Ï졣Ȼ¶ø£¬ÊÂÎñ¶ÔÏóÓÐÓëÆä¹ØÁªµÄÊÂÎñ£¬ÒÔʹ·ÖÅäµÄ¿É»Ö¸´¶ÔÏ󣨻òResources£©ÓëÊÂÎñ¶ÔÏóµÄµ±Ç°ÊÂÎñÏà¹ØÁª¡£Ò»¸öenterprise beanÊÇÒ»¸öÊÂÎñ¶ÔÏóµÄºÃÀý×Ó¡£ÈÝÆ÷´ú±íbeanά»¤ÊÂÎñ¡£ÈκÎbean·ÖÅäµÄ¿É»Ö¸´¶ÔÏóÔÚÈÝÆ÷µÄ°ïÖúÏÂ͸Ã÷µØ·ÅÖÃÔÚÊÂÎñÖС£BeanûÓÐcommit()»òrollback()·½·¨£¬Òò´ËÊÂÎñ²»ÄÜÖ±½Ó²Ù×Ýbean.ÈÃbean×÷Ϊһ¸ö¿É»Ö¸´µÄResource²¢Ã»ÓÐʲôÒâÒ壬ÒòΪÕâʹµÃbean¿ª·¢Õß±ØÐëΪÿ¸öbeanÌí¼Ó¶îÍâµÄ´úÂ룬¶øenterprise bean¼¸ºõûÓÐÄÚÔÚ״̬Ӧ¸ÃÓ°ÏìÒ»¸öÍⲿµÄÊÂÎñ¡£ÈÃenterprise bean×÷Ϊ¿É»Ö¸´¶ÔÏóµÄ¹ÜÀíÕߣ¬Èÿɻָ´¶ÔÏóÍê³ÉÕâ¸ö¹¤×÷»á¸üºÃ¡£

¡¡¡¡×¢ÒâbeanÔÚÈÝÆ÷ÊÔͼÌá½»»ò»Ø¹ö֮ǰ¿ÉÒÔÓÐȨ±í¾ö»Ø¹öÒ»¸öÊÂÎñ¡£ÔÚEJBContextÖÐBean¿ÉÒÔÓÃCoordinatorÖеÄrollback_only()·½·¨×÷ΪsetRollBackOnly()¸øÊÂÎñÉèÖñêÖ¾£¬ÒÔʹÊÂÎñÖÕֹʱ¼äµ½´ïʱÇëÇ󻨹ö¡£»¹¿ÉÒÔͨ¹ýSessionSynchronization½Ó¿Ú֪ͨһ¸öbeanÓйØÒ»¸öÊÂÎñµÄ½á¹û¡£

ÔÚ²¿ÊðÃèÊö·ûÖÐÖ¸¶¨ÊÂÎñ¿ØÖÆ

¡¡¡¡beanµÄ²¿ÊðÃèÊö·û°üº¬Ò»¸öControlDescriptor¶ÔÏóµÄÊý×顣ÿ¸öControlDescriptorÃèÊöÁËÓë·½·¨¹ØÁªµÄÊÂÎñ¿ØÖÆ¡£ Bean¿ª·¢ÕßÖ¸¶¨bean·½·¨ÖеÄÊÂÎñ¿ØÖÆ¡£²¿ÊðÕßÔÚ¶Ô·½·¨µÄÊÂÎñÏà¹ØÐÐΪûÓÐϸÖÂÁ˽âµÄÇé¿öÏÂÒ»°ã²»Ó¦¸Ä±äÕâЩֵ¡£ÈçϵÄÁù¸öÊÂÎñ¿ØÖÆÊÇÔÚControlDescriptorÀඨÒåµÄÕûÐγ£Á¿¡£³ýÁ˸ÃÀàµÄ·½·¨£¬Ã»ÓÐÆäËüµÄAPIsÄÜ·ÃÎÊËüÃÇ¡£Bean±¾Éí²»·ÃÎÊÊÂÎñ¿ØÖÆ¡£ Bean±¾ÉíµÄ·½·¨²»ÄÜ·ÃÎÊÆäÊÂÎñÊôÐÔ¡£ÈÝÆ÷¶ÁÈ¡ÕâЩ¿ØÖÆÖµÀ´Î¬»¤beanµÄÏàÓ¦µÄÊÂÎñÐÐΪ¡£


£¿TX_NOT_SUPPORTED
£¿TX_SUPPORTS
£¿TX_REQUIRED
£¿TX_REQUIRES_NEW
£¿TX_MANDATORY
£¿TX_BEAN+NANAGED
¡¡¡¡Äã¿ÉÒÔͨ¹ý³§ÉÌÌṩµÄ´´½¨²¿ÊðÃèÊö·ûµÄ¹¤¾ßÀ´ÎªbeanÉèÖúÏÊʵÄControlDescriptor.
TX_NOT_SUPPORTED
¡¡¡¡¸Ã·½·¨²»Ó¦ÔËÐÐÔÚÊÂÎñÉÏÏÂÎÄÖС£Èç¹ûÔÚÒ»¸öÊÂÎñÖÐÖ´ÐÐỊ̈߳¬ÄÇôÕâ¸öÊÂÎñ½«¹ÒÆðÖ±µ½Ï̴߳ӷ½·¨Öзµ»Ø¡£
TX_SUPPORTS
¡¡¡¡¸Ã·½·¨²»ÐèÒªÊÂÎñ£¬ÔËÐи÷½·¨Ê±Ï߳̿ÉÄÜÓÐÒ»¸ö»î¶¯µÄÊÂÎñ¡£
TX_REQUIRED
¡¡¡¡¸Ã·½·¨±ØÐëÔËÐÐÔÚÊÂÎñÖС£Èç¹ûÏß³ÌÒѾ­ÓÐÒ»¸öÊÂÎñ£¬ÔòÕâ¸öÏß³ÌÔÊÐí½øÈë´Ë·½·¨¡£Èç¹ûÏß³ÌûÓÐÊÂÎñ£¬ÔòÈÝÆ÷´ú±íÏß³ÌÆô¶¯Ò»¸öÔÊÐíÏ߳̽øÈëµÄÊÂÎñ£¬µ±Ï̷߳µ»ØÊÇÖÕÖ¹ÊÂÎñ¡£Ò»°ãÓ¦Ìá½»ÊÂÎñ¡£Èç¹ûÏֳɵ÷ÓÃsetRollbackOnly()·½·¨£¬ÔòÈÝÆ÷ÏàÓ¦µØÖ´ÐÐÒ»¸ö»Ø¹ö¡£
TX-REQUIRED_NEW
¡¡¡¡²»ÂÛÏß³ÌÊÇ·ñÓÐÒ»¸öÊÂÎñ£¬ÈÝÆ÷¶¼»áÔÚ·½·¨µ÷ÓÃÆÚ¼ä´´½¨Ò»¸öÊÂÎñ¡£µ±Ï̷߳µ»ØÊ±£¬ÈÝÆ÷Ìá½»»ò»Ø¹öÕâ¸öÊÂÎñ¡£Èç¹ûÏß³ÌÓÐÒ»¸ö½øÐÐÖеÄÊÂÎñ£¬ÔòÐÂÊÂÎñ»á¹ÒÆðÖ±µ½Ï̷߳µ»Ø»ò·½·¨µÄÊÂÎñÖÕÖ¹¡£
TX_MANDATORY
¡¡¡¡µ±µ÷ÓÃÕâ¸ö·½·¨Ê±Ï̱߳ØÐëÒѾ­ÔÚÒ»¸öÊÂÎñÖС£Èç¹ûÏß³ÌûÓÐÊÂÎñ£¬ÔòÈÝÆ÷»áÅ׳öÒ»¸öÀýÍâ¡£
TX_BEAN_MANAGED
¡¡¡¡Õâ¸öÓëÉÏÊö¼¸¸ö²»Í¬¡£ÕâÖÖ·½·¨±íÃ÷ÈÝÆ÷²»Ó¦ÔÚÊÂÎñ¹ÜÀíÖÐÆð×÷Óá£

JTS-JavaÊÂÎñ·þÎñ

¡¡¡¡Êµ¼ÊÉÏJTS²»ÊÇÒ»¸öÊÂÎñ·þÎñ--Ö»Êǵײã·þÎñÌṩÕßµÄÒ»²ã½Ó¿Ú¡£JTS·Ç³£¼òµ¥£¬ÓÉÒ»¸ö½Ó¿ÚºÍ¼¸¸öÀýÍâ×é³É¡£´ÓÀýÍâÁбíºÜÈÝÒ×ÄÜ¿´³öËüÀàËÆOTS£¬ËäÈ»ËüÒ²¿ÉÒÔ×÷ΪÆäËü·þÎñµÄ½Ó¿Ú¡£¶ÔÓÚÉùÃ÷ÊÂÎñ¿ØÖÆ·½Ê½Îª×Ô¹ÜÀíµÄbean,¿ÉÒÔͨ¹ýÕâ¸ö½Ó¿Ú·ÃÎÊÊÂÎñ·þÎñ¡£³§ÉÌÒ²¿ÉÒÔÓÃËüÀ´Ìṩ¶Ô¿Í»§¶Ë»®·ÖÊÂÎñµÄÖ§³Ö¡£


ÈçÏÂÊÇUserTransaction½Ó¿ÚµÄ¶¨Ò壺

public interface javax.jts.UserTransaction {
public void begin() throws IllegalStateException;
public void commit() throws
TransactionRolledBackException,
HeuristicMixedException,
HeuristicRollbackException,
SecurityException,
IllegalStateException;
Public void rollback() throws
SecurityException,
IllegalStateException;
Public void setRollbackOnly() throws
IllegalStateException;
public void setTransactionTimeout(int seconds);
public int getStatus();
//STATUS_ACTIVE,STATUS_COMMITTING,
//STATUS_COMMITTED,STATUS_MARKED_ROLLBACK
//STATUS_NO_TRANSACTION,STATUS_PREPARED
//STATUS_PREPARING,STATUS_ROLLEDBACK
//STATUS_ROLLING_BACK,STATUS_UNKNOWN
}

ת×Ô www.chinacode.net Öйú´úÂëÁªÃËÐÂÎÅ×é

ÏÂÒ³8

¡ö Ïà¹ØÄÚÈÝ
¡¡Enterprise JavaBeansµ¼ÂÛ¶þ
¡¡Enterprise JavaBeansµ¼ÂÛÒ»
¡¡Enterprise JavaBeansµ¼ÂÛÆß
¡¡Enterprise JavaBeansµ¼ÂÛÎå
¡¡Enterprise JavaBeansµ¼ÂÛËÄ
¡¡Enterprise JavaBeansµ¼ÂÛÈý
¸Ðл ·ÃÎÊÌì¼«Íø£¬Èç¹ûÄú¾õµÃ¸ÃÎÄÕÂÉæ¼°°æÈ¨ÎÊÌ⣬Çë¿´ÕâÀ