Problem with rollback in EJB and CMT

Hello,
I faced a problem in my application that I really do not understand (but I really would like to). How can I trigger a rollback of a transaction that is container-managed (CMT)? I know that any system exceptions are supposed to be handled by the container automatically and will cause a transaction rollback when they are thrown from an enterprise bean method. My Problem now is that I'm unable to make this work in my application.
Consider a situation like this:
The ManageEntityBean holds a simple save() method that creates an instance of EntityA and another of EntityB. Both instances store an arbitrary number (here 10). After this, the entityManger (injected from the container) is asked to make these instances persistent. EntityB is mapped with a "unique" constraint, so any attempt to store the same number twice will cause an SQL Exception.
First time when the save() method is invoked, the instances aEntity and bEntity are made permanent in the database. Second time when the save() method is invoked, the database throws an exception because bEntity is violating the unique constraint. What I would expect now is a complete rollback of the whole transaction. Instead, only bEntity has not been made permanent, but aEntity has.
What's wrong with this code?
@Stateless
public class ManageEntityBean implements ManageEntity {
     @PersistenceContext
     private EntityManager entityManager;
     @TransactionAttribute(TransactionAttributeType.REQUIRED)
     public void save() {
          try {
               EntityA aEntity = new EntityA(10);
               EntityB bEntity = new EntityB(10);
                entityManager.persist(aEntity);
                entityManager.persist(bEntity);
          } catch (Exception e) {
               throw new EJBException(e);
@Entity
public class EntityA implements java.io.Serializable {
     @Id
     @GeneratedValue
     private long     id;
        @Column(name="NUMBER")
        private int   number;
     public EntityA() {}
     public EntityA(int number) {
          this.number = number;
@Entity
public class EntityB implements java.io.Serializable {
     @Id
     @GeneratedValue
     private long     id;
     @Column(name = "NUMBER", unique = true)
     private int          number;
     public EntityB() {}
     public EntityB(int number) {
          this.number = number;
}I found two related topics in this forum but still I didn't find the solution yet.
[Enterprise JavaBeans - CMT and JDBC|http://forums.sun.com/thread.jspa?forumID=13&threadID=525651]
and
[ Forums - A CMT Session Bean Does Not Maintain the Transaction Correctly| http://forums.sun.com/thread.jspa?forumID=13&threadID=161512]
Maybe anyone can give me a hint. Help is very much appreciated
Christoph

Thank you for your input!
The save() method is simply invoked from the test applications main() method:
public class Test {
     public static void main(String[] args) {
          JndiUtil<ManageEntity> jndiUtil = new JndiUtil<ManageEntity>();
          ManageEntity handler = jndiUtil.lookupBeanContext("ManageEntityBean", ManageEntity.class);
          handler.save();
}Btw. I use Hibernate as persistence provider and JBoss 4.2.2.GA as application server.
For clarity I attach some lines of the debug logging that is produced when the test application is getting started for the second time:
### open Session
17:44:00,555 DEBUG *[SessionImpl] opened session at timestamp: 5007498610909184*
17:44:00,555 DEBUG [AbstractEntityManagerImpl] Looking for a JTA transaction to join
17:44:00,555 DEBUG [JDBCContext] successfully registered Synchronization
17:44:00,555 DEBUG [AbstractEntityManagerImpl] Looking for a JTA transaction to join
17:44:00,555 DEBUG [AbstractEntityManagerImpl] Transaction already joined
### invoke em.persist(aEntity)
17:44:00,555 DEBUG [AbstractSaveEventListener] executing identity-insert immediately
17:44:00,555 DEBUG [AbstractBatcher] about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
17:44:00,555 DEBUG *[ConnectionManager] opening JDBC connection*
17:44:00,555 DEBUG [SQL]
/* insert de.zippus.domain.EntityA
17:44:00,556 INFO [STDOUT] Hibernate:
/* insert de.zippus.domain.EntityA
17:44:00,558 DEBUG [IdentifierGeneratorFactory] Natively generated identity: 2
17:44:00,559 DEBUG [AbstractBatcher] about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
17:44:00,559 DEBUG [ConnectionManager] aggressively releasing JDBC connection
17:44:00,559 DEBUG [ConnectionManager] releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: >0)]
### invoke em.persist(bEntity)
17:44:00,559 DEBUG [AbstractSaveEventListener] executing identity-insert immediately
17:44:00,559 DEBUG [AbstractBatcher] about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
17:44:00,559 DEBUG [ConnectionManager] opening JDBC connection
17:44:00,559 DEBUG [SQL]
/* insert de.zippus.domain.EntityB
17:44:00,560 INFO [STDOUT] Hibernate:
/* insert de.zippus.domain.EntityB
17:44:00,561 DEBUG [AbstractBatcher] about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
17:44:00,561 DEBUG [ConnectionManager] aggressively releasing JDBC connection
17:44:00,561 DEBUG [ConnectionManager] releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: >0)]
17:44:00,561 DEBUG [JDBCExceptionReporter] could not insert: [de.zippus.domain.EntityB] [* insert de.zippus.domain.EntityB */ insert into >ENTITY_B (NUMBER) values (?)]
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Duplicate entry '10' for key 2
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
17:44:00,563 WARN [JDBCExceptionReporter] SQL Error: 1062, SQLState: 23000
17:44:00,563 ERROR [JDBCExceptionReporter] Duplicate entry '10' for key 2
17:44:00,563 DEBUG [AbstractEntityManagerImpl] mark transaction for rollback
17:44:00,563 ERROR [ManageEntityBean] Caught exception: javax.persistence.EntityExistsException: >org.hibernate.exception.ConstraintViolationException: could not insert: [de.zippus.domain.EntityB]
17:44:00,563 ERROR [ManageEntityBean] Exception Cause: org.hibernate.exception.ConstraintViolationException: could not insert: >[de.zippus.domain.EntityB]
17:44:00,564 DEBUG *[ManagedEntityManagerFactory] ************** closing entity managersession *************** Up to now I'm not that experienced in reading and understanding this kind of logging, but what I can see is, that there is a transaction that spans the whole unit of work and that this transaction is marked for rollback. I think that's quite a good thing, isn't it?
But what really puzzles me here is, that both calls of em.persist() result in an opening of a jdbc connection and an immidiate execution of a database insert. Tell me if I'm wrong, but is this really the right place to happen?
For what reason soever hibernate thinks it has to make these instances permanent, no matter if there is already a session that is taking care of this. If so, I might deal with a wrong hibernate configuration, I checked, but I can't find anything..
What do you think?
Thanks in advance!
Christoph

Similar Messages

  • Problem with rollback

    Hello,
    I have this query
    DECLARE @TransactionName varchar(20) = 'inlinefunctionTransaction';
    begin tran @TransactionName
     select * from jsp('S1','P1');
    ROLLBACK TRAN @TransactionName;
    go
    but when executing it I get a message
    Cannot roll back inlinefunctionTransaction. No transaction or savepoint of that name was found. 
    Can anybody explin me please what's going wrong?
    Thanks

    Thanks, but I tried with
    DECLARE
    @TransactionName
    varchar(40)='infTransaction';
    but again happened, so the varchar od 20 was not the problem.I have begin tran for several dierent procedures. All of them start with
    DECLARE
    @TransactionName
    varchar(40)='infTransaction';
    begin
    tran
    @TransactionName
    but only the last function ends with
    ROLLBACK
    TRAN
    @TransactionName;
    and all the procedures end with go, which I don't know whether is ok.
    Thanks

  • Very big problem with JSF about FORM and "id=" for HTML form's elements and

    I have discovered a very big problem with JSF about FORM and "id=" for HTML form's elements and java instruction "request.getParameterNames()".
    Suppose you have something like this, to render some datas form a Java Beans :
    <h:dataTable value="#{TablesDb2Bean.myDataDb2ListSelection}" var="current" border="2" width="50%" cellpadding="2" cellspacing="2" style="text-align: center">
    <h:column>
    <f:facet name="header">
    <h:outputText value="Name"/>
    </f:facet>
    <h:outputText id="nameTableDb2" value="#{current.db2_name_table}"/>
    </h:column>
    </h:dataTable>
    Everything works fine...
    Suppose you want to get the name/value pairs for id="nameTableDb2" and #{current.db2_name_table} to process them in a servlet. Here is the HTML generated :
    <td><span <span class="attribute-name">id=<span class="attribute-value">"j_id_jsp_1715189495_22:0:nameTableDb2">my-table-db2-xxxxx</span></td>
    You think you can use the java instructions :
    Enumeration NamesParam = request.getParameterNames();
    while (NomsParam.hasMoreElements()) {
    String NameParam = (String) NamesParam.nextElement();
    out.println("<h4>"++NameParam+ "+</h4>);
    YOU ARE WRONG : request.getParameterNames() wants the syntax *name="nameTableDb2" but JSF must use id="nameTableDb2" for "<h:outputText"... So, you can't process datas in a FORM generated with JSF in a Servlet ! Perhaps I have made an error, but really, I wonder which ?
    Edited by: ungars on Jul 18, 2010 12:43 AM
    Edited by: ungars on Jul 18, 2010 12:45 AM

    While I certainly appreciate ejb's helpful responses, this thread shows up a difference in perspective between how I read the forum and how others do. Author ejb is correct in advising you to stay inside JSF for form processing if form processing is what you want to do.
    However, I detect another aspect to this post which reminds me of something Marc Andreesen once said when he was trying to get Netscape off the ground: "there's no such thing as bad HTML."
    In this case, I interpret ungar's request as a new feature request. Can I phrase it like this?
    "Wouldn't it be nice if I could render my nice form with JSF but, in certain cases, when I REALLY know what I'm doing" just post out to a separate servlet? I know that in this case I'll be missing out on all the nice validation, conversion, l10n, i18n, ajax, portlet and other features provided by JSF".
    If this is the case, because it really misses the point of JSF, we don't allow it, but we do have an issue filed for it
    https://javaserverfaces-spec-public.dev.java.net/issues/show_bug.cgi?id=127
    If you can't wait for it to be fixed, you could decorate the FormRenderer to fix what you want.
    I have an example in my JSF book that shows how to do this decoration. http://bit.ly/edburnsjsf2
    Ed

  • I downloaded a new version of firefox. It said it had problems with my norton toolbar and now it doesn't feature it in the window. I'm not that comp savvy. How do I either get the Norton toolbar up or go back to the old firefox? Thank you.

    I downloaded a new version of firefox. It said it had problems with my norton toolbar and now it doesn't feature it in the window. I'm not that comp savvy. How do I either get the Norton toolbar up or go back to the old firefox? Thank you.

    Please authorize ADE 3 with same credentials that you used with older version of ADE

  • After having yet another problem with my MacBook Pro and having to wipe the drive, I am now unable to sync my iPhones etc without erasing all the music on them. Is there a way around this? I have no other library!

    After having yet another problem with my MacBook Pro and having to wipe the drive, I am now unable to sync my iPhones etc without erasing all the music on them. Is there a way around this? I have no other library!
    iTunes is a mess! It couldn't find it's own libraries and I was forced to create a new one. Now I don't know where my music is or if any's missing.

    columbus new boy wrote:
    How crap is that?
    It's not crap at all.
    It's not that simple. For example, I've 3500 songs on my MacBook but don't want them all on my phone, so I have to manually select each song again???
    There has to be a solution.
    Why not simply make a playlist with the songs you want on the iPhone?
    and maintain a current backup of your computer.

  • I tried downloading a free app and it asked for my billing information and when i entered it, it says that there was a billing problem with a previoud purchase and i have to update it. I keep updating it and it wont let me verify it and i cant get apps

    I tried downloading a free app and it asked for my billing information and when I entered it, it said that there was a billing problem with a previous purchase and I have to update it. I keep updating it and it wont let me verify it and I cant get any apps even if they are free, and I just Deleted some apps to make room for my new upate!

    The message says: "The payment method has been denied, try another method"
    I'm living in the same country and city since I was born, so I don't think the location is the problem.
    And yes, I paid with the card a meal in Burguer King today. And nothing more.

  • HT3552 I have been trying to download apps from the app store and every time it tells me there is a problem with my previous billing and direct me to put in new billing information and every time i do that it still will not let me download any apps.

    I have been trying to download apps from the app store and every time it tells me there is a problem with my previous billing and direct me to put in new billing information and every time i do that it still will not let me download any apps.

    Have a look here >  http://support.apple.com/kb/TS1646

  • Communication problem with Adobe 9.0 and HP Printer when I scan

    I'm having a problem getting a .pdf file to come up when I scan from a HP 5610 All-in-one printer. Have uninstalled and reinstalled HP software three times but when I scan and want a pdf file it won't communicate with Adobe 9.0 reader for some reason. Is there a setting in Adobe reader that's a problem?
    Thanks.

    Thanks...found out that an HP5610xi All-in-One will not completely communicate with Adobe 9.0   Had to go to Adobe 6.0
    Date: Thu, 17 Dec 2009 03:19:49 -0700
    From: [email protected]
    To: [email protected]
    Subject: Communication problem with Adobe 9.0 and HP Printer when I scan
    May be that the HP software doesn't support Adobe Reader 9.
    >

  • Problem with java swing button and loop

    Problem with java swing button and loop
    I�m using VAJ 4.0. and I�m doing normal GUI application. I have next problem.
    I have in the same class two jswing buttons named start (ivjGStart) and stop (ivjGStop) and private static int field named Status where initial value is 0. This buttons should work something like this:
    When I click on start button it must do next:
    Start button must set disenabled and Stop button must set enabled and selected. Field status is set to 1, because this is a condition in next procedure in some loop. And then procedure named IzvajajNeprekinjeno() is invoked.
    And when I click on stop button it must do next:
    Start button must set enabled and selected and Stop button must set disenabled.
    Field status is set to 0.
    This works everything fine without loop �do .. while� inside the procedure IzvajajNeprekinjeno(). But when used this loop the start button all the time stay (like) pressed. And this means that a can�t stop my loop.
    There is java code, so you can get better picture:
    /** start button */
    public void gStart_ActionEvents() {
    try {
    ivjGStart.setEnabled(false);
    ivjGStop.setEnabled(true);
    ivjGStop.setSelected(true);
    getJTextPane1().setText("Program is running ...");
    Status = 1;
    } catch (Exception e) {}
    /** stop button */
    public void gStop_ActionEvents() {
    try {
    ivjGStart.setEnabled(true);
    ivjGStart.setSelected(true);
    ivjGStop.setEnabled(false);
    getJTextPane1().setText("Program is NOT running ...");
    Status = 0;
    } catch (Exception e) {
    /** procedure IzvajajNeprekinjeno() */
    public void IzvajajNeprekinjeno() {  //RunLoop
    try {
    int zamik = 2000; //delay
    do {
    Thread.sleep(zamik);
    PreberiDat(); //procedure
    } while (Status == 1);
    } catch (Exception e) {
    So, I'm asking what I have to do, that start button will not all the time stay pressed? Or some other aspect of solving this problem.
    Any help will be appreciated.
    Best regards,
    Tomi

    This is a multi thread problem. When you start the gui, it is running in one thread. Lets call that GUI_Thread so we know what we are talking about.
    Since java is task-based this will happen if you do like this:
    1. Button "Start" is pressed. Thread running: GUI_Thread
    2. Event gStart_ActionEvents() called. Thread running: GUI_Thread
    3. Method IzvajajNeprekinjeno() called. Thread running: GUI_Thread
    4. Sleep in method IzvajajNeprekinjeno() on thread GUI_Thread
    5. Call PreberiDat(). Thread running: GUI_Thread
    6. Check status. If == 1, go tho 4. Thread running: GUI_Thread.
    Since the method IzvajajNeprekinjeno() (what does that mean?) and the GUI is running in the same thread and the event that the Start button has thrown isn't done yet, the program will go on in the IzvajajNeprekinjeno() method forever and never let you press the Stop-button.
    What you have to do is do put either the GUI in a thread of its own or start a new thread that will do the task of the IzvajajNeprekinjeno() method.
    http://java.sun.com/docs/books/tutorial/uiswing/index.html
    This tutorial explains how to build a multi threaded gui.
    /Lime

  • Memory Problem With 4gb Crucial Ballistix and Asus M4A785TD-V EVO

    motherBoard: ASUS M4A785TD-V EVO
    bios Version :2005
    Video: amd hd5750
    Processor: AMD PHENON II X2 550 3.100MHZ
    Memory: Crucial
    Modele Memory: blt4g3d1608dt1tx0
    Capacity: 4GB
    greetings to all
    i have asus m4a785td-v evo mobo. i ve bought 4 gb crucial ballistix ram today. it says on product its 1600 mhz and cl8 but it shows on my pc 1333 mhz and cl9.  when i was searching for this problem i came across this topic: http://forum.crucial.com/t5/Crucial-Ballistix-gaming-memory/Memory-Probleme-With-8GO-Crucial-Ballistix-and-Asus-M4A785TD-V/td-p/9464 can i apply the same settings? how can i fix that?  is it possible via bios settings? thx in advance and sry for my bad english. here is some screenshots: 

    I am not good at RAM setting but the 'Timings Table' shows there is XMP-1600 profile available so I believe it would be enough to turn on that memory profile in BIOS.

  • I have problem with syncing in itunes and it stared since i installed new version of itunes.it stuck in backup step for houres.what shud i do?

    I have problem with syncing in itunes and it stared since i installed new version of itunes.it stuck in backup step for houres.what shud i do?

    So, in iTunes, when you look at the shuffle's content (in the sidebar) and click on the playlist under the shuffle, over to the right, the songs are in your desired order, correct?  Where do you look, or what do you do, that indicates the playlists are in alphabetical order?  Are you saying that when you play the songs while using the shuffle, they play in alphabetical order?
    If so, when you listen to the songs on the shuffle, are you using the playlist, or are you using the All Songs list? If you are in the default All Songs list, with the shuffle's power switch set to play-in-order (the middle position), the songs play alphabetically, I believe. 
    The 3rd gen shuffle uses VoiceOver.  If you are in the All Songs list, you need to use VoiceOver to switch to the playlist (see manual linked below for details).  When you are in the playlist (with the shuffle's power switch set to play-in-order), then the songs should play in playlist order.
    There are more details in the manual for the 3rd gen shuffle, which is online here
    http://manuals.info.apple.com/en_US/iPod_shuffle_3rdGen_UG.pdf
    See page 22 for the section about setting up and using VoiceOver.  The part about switching playlists starts on page 23 (Using the Playlist Menu).

  • TS1646 hello  I have problem with regist my visa and I cannot buy from store the message came in the end of form is says the phone number must be a 7-digit number and I have writed but not accepted iam from saudi arabia my mobile is 966504850992 pls answe

    hello 
    I have problem with regist my visa and I cannot buy from store
    the message came in the end of form is says
    the phone number must be a 7-digit number
    and I have writed but not accepted
    iam from saudi arabia
    my mobile is 966504850992
    pls answer
    thanks
    dfr aldossary

    Wow, Karan Taneja, you've just embarrassed yourself on a worldwide support forum.  Not only is your post ridiculous and completely inappropriate for a technical support forum, but it also shows your ignorance as to whom you think the audience is.  Apple is not here.  It's users, like you. 
    If you would have spent half the time actually reading the Terms of Use of this forum that YOU agreed to by signing up to post, as you did composing that usesless, inappropriate post, you (and the rest of us on this forum) would have been much better off.

  • I have an older version of Adobe Digital Editions (around 3 years old) and was very happy with it.  Then I had problems with my Kobo Reader and asked a friend who works in IT to assist. She could not fix the Kobo but she messed up my Addobe. She downloade

    I have an older version of Adobe Digital Editions (around 3 years old) and was very happy with it.
    Then I had problems with my Kobo Reader and asked a friend who works in IT to assist. She could not fix the Kobo but she messed up my Addobe. She downloaded version three and I have an account and a password - was not able to transfer my books from my reader to version three (and I don't like the lay-out - I would prefer to stay with the old version as I also loose all my download date info..)
    But all the books I have bought over the last three years are in the old Adobe Digital and I cannot access them any more. When I use it I get the message "that the document is licensed to a different account. I can't even open the books on my computer.
    When I go to my Kobo library, I cannot also not open my books and get the message "this doc is protected by adobe digital rights management and is not currently authorized for use with your adobe. please sign in with your authorized adobe id and try again"
    I believe the problem is that I do not seem to have a digital id for my old adobe or that the Kobo is not in sync with it anymore.
    can you please help me - going on vacation in three days and cannot go without books.

    Please authorize ADE 3 with same credentials that you used with older version of ADE

  • I have a £50 gift voucher and I tried to buy something with it, but it tells me there was a billing problem with a previous purchase and makes me put in my debit card details. My debit card has no money atm, can't I just pay with my voucher?

    I have a £50 gift voucher and I tried to buy something with it, but it tells me there was a billing problem with a previous purchase and makes me put in my debit card details. My debit card has no money atm, can't I just pay with my voucher for the things that have a billing problem? I tried to put my voucher code in again but it won't let me do that.

    If the amount of the purchase is close to $21.07, then you need to take into account taxes may be added.
    If you go beyond the credit from a gift card the balance will be billed to your credit card account.

  • I have been having problems with my iPod touch and my WRT...

    I have been having problems with my iPod touch and my WRT54G router. I am so frustrated right now because after following the various steps mentioned in one of these threads, following Earthlink's prompts, and speaking with Apple, my iPod touch will still not work. It is connected to the internet but will not download the pages. It is quite frustrating. I have changed from WPA to WEP, I switched the 4th Generated key to the 1st. I've disabled this, enabled that. I've done just about everything. I updated the firmware. I made the switch from a partial bridge to a full bridge. Still nothing seems to work. Does anyone have any other suggestions? The one thing I have not done is enter the Apple code into the iPod which searches for website...-- I cannot access the internet with my iPod so this web address does not work. If anyone has been successful, will you please give me step by step instructions? Yesterday I was on the phone with Linksys for about an hour. Before that with Apple for about an hour and before that with Earthlink. How it is that I can walk into a Bread Co. or Apple Store and immediately connect to the internet with my iPod but I can't in my own house?? Everyone seems to think it is someone else's problem so I've gone around and around. Not one of the Linksys support personnel suggested I look here on this community forum. I had to pay the $9 fee to have advanced Linksys help but still my iPod does not work and when I called back, the man I spoke with seemed to think the case was closed because my PC, Laptop, and iPod are connected to the internet -- the iPod just won't download the webpages or get mail. My iPod's IP address begins with 192. I would appreciate any help on this matter
    Message Edited by AlliW on 10-02-2008 02:06 PM

    I had the same issues with my iPod touch & iPhone. It's a known issue with the touch & Linksys G routers. Go into settings on the touch & do the following.
    1. Settings - wifi - linksys
    2. Erase your DNS settings & input same numbers as in router
    Settings.
    3. Http proxy should be
    in off position.
    4. Close out & open safari you should now have a wireless
    connection.

Maybe you are looking for

  • How to populate drop down list in infopath 2010 with form library column

    I created one column of choice type and have put 3 values on this column in form library in site. and one drop down list in form library at infopath 2010 but how to populate the dropdown in infopath populate with this column.

  • IBook g3 900mhz Apple Apps keep quitting on thier own

    I have an iBook g3 900mhz 384mb 40Gb. I have Tiger installed. I have re-installed tiger and reformated the HD many times but here's my issue. Apps like Safari quit unexpectedly. .dmg files cannot expand due to a codec overrun. at first start up every

  • Sun Java Application Server 8.1 Upgrade Solaris 9 to Solaris 10

    I have Sun Java Application Server 8.1 (version 8.1_02 (build b06-fcs) ) and HA which are currently installed on Solaris 9 box (Sparc). Now, I plan to upgrade Solaris 9 to Solaris 10. What should I need to do before and after migration? Thanks.

  • 11I: WHERE FIND DOCUMENT FOR AR_TRANSACTION_PUB?

    제품 : FIN_Ar 작성날짜 : 2006-05-29 11I: WHERE FIND DOCUMENT FOR AR_TRANSACTION_PUB? ================================================== PURPOSE 11i 에서 AR_TRANSACTION_PUB 을 이용하여 Single Transaction을 생성하려고 하나 Error 가 발생한다. Explanation AR_TRANSACTION_PUB 은 11.

  • Va01 sales order item checking

    When I create a sales order in VA01, when I enter less than 3 different brand( material in line item), The system should first generate message, after that I should be able to block that order with giving proper reason and then I should be able to sa