Transaction diamond?

          We're having a problem in our app which I've been able to duplicate using a simple
          bank account example. In this example we're using BMP, Container managed tx's,
          and all methods are marked as required. All session beans are stateless.
          State prior to client call: Account A has a balance of $100.
          (1) Client makes a call to BankTellerService to deposit $50 into Account A:
          long depositAndGetBalance( accountId, amountToDeposit ).
          All of the following are in the transaction started by the call in (1).
          (2) BankTellerService calls:
          void BankTransactionService.deposit( amountToDeposit )
          3) BankTransactionService looks up AccountBean and increases it's balance by amountToDeposit
          4) BankTellerSevice calls BalanceService to get the balance of Account A:
          long BalanceService.getBalance( accountId )
          5) BalanceService looks up the AccountBean for account A and returns it
          6) BankTellerService returns the balance to the client
          The balance returned is $100, which is identical to the initial state and does
          not reflect the deposit of $50.
          It appears that two seperate instances of Account A are being loaded, with the
          first instance receiving the deposit, and then the second instance being loaded.
          ejbStore is called sequentially, which means the the first instance stores the
          correct balance of $150, and then is overwritten by the second instance with a
          balance of $100.
          When we change the deployment descriptor to say <delay-updates-until-end-of-tx>false</delay...>,
          our problems are solved.
          Current answers from BEA support have said that this is by design and the default
          setting of delay=false causes this problem but is default for performance reasons.
          I just can't accept that because that would seem to violate sectino 17.7 of the
          spec, which states that the container is responsible for detecting this diamond
          and resolving the problem.
          Any ideas?
          Thanks,
          Matt
          

          Rob,
          You're the man. After testing it, I did fint that our PK class .equals method
          didn't work. If you'll look at the code I sent you,it was finally testing: this.id.equals(obj)
          instead of this.id.equals( ((BasePK)pk).id ).
          Thanks very much for the help.
          Matt Clark
          Rob Woollen <[email protected]> wrote:
          >
          >
          >The reason I asked about your primary key class is that your previous
          >message shows:
          >
          >> //Client calls depositAndGetNewBalance on remote interface
          >> //Container starts transaction
          >> // Container calls depositAndGetNewBalance on bean
          >> //enter BankTransactionService.deposit
          >> findByPrimaryKey: Hashcode: 721349
          >> ejbLoad: Balance 100 Hashcode 721349
          >> getAccountVO: Balance 100 Hashcode 721349
          >> setAccountVO: Balance 150 Hashcode 721349
          >> //exit BankTransactionService.deposit
          >>
          >> //enter BalanceService.getBalance
          >> findByPrimaryKey: Hashcode 2748333
          >> ejbLoad: Balance 100 Hashcode 2748333
          >>
          >This is where I'm concerned. Assuming that the deposit call and the
          >getBalance call both call the entity
          >bean with the same pk in the same tx, then there should only be one
          >instance used. However, here we see 2
          >instances.
          >
          >My guess is still that your pk hashCode and equals are off. (The container
          >uses them to determine whether
          >there is already an instance for this pk in use.)
          >
          >I would suggest that you add some debug messages to your hashCode and
          >equals methods. In particular, check
          >that when a.equals(b), a.hashCode() == b.hashCode(). Also make sure
          >that you're equals() method is not
          >returning false unexpectedly.
          >
          >If you're still having problems, post again, and we'll go from there.
          >
          >-- Rob
          >
          >> //exit BankTellerService.getBalance
          >> //exit depositAndGetNewBalance on bean
          >>
          >>
          >> ejbStore: Balance 150 Hashcode 721349
          >> ejbStore: Balance 100 Hashcode 2748333
          >> //Transaction done
          >> //Client deposit done
          >>
          >> //Client removes account
          >> findByPrimaryKey: Hashcode 5932239
          >> ejbLoad: Balance 100 Hashcode 5932239
          >> ejbRemove: Balance 100 Hashcode 5932239
          >> //Client done
          >>
          >Matt Clark wrote:
          >
          >> Rob,
          >>
          >> After thinking about why you asked to see the pk methods, I went and
          >looked at
          >> our implementation, and noticed that the hashcode method on OID is
          >faulty (missing
          >> some parentheses). However, afetr I fixed it we're still getting the
          >same problem.
          >> If I print out pk.hashCode(), I get all the same hashcode. If i print
          >out System.identityHashcode(
          >> pk ), I get different hashcodes, which I understand is because that
          >call calls
          >> Object.hashCode even if it has been overridden.
          >>
          >> Hope this helps,
          >>
          >> Matt
          >>
          >> "Matt Clark" <[email protected]> wrote:
          >> >
          >> >Sure.
          >> >
          >> >The BasePK class has a private attribute "id" of type OID, and here
          >are
          >> >the hashcode
          >> >and equals methods for BasePK:
          >> >
          >> >public int hashCode()
          >> >{
          >> > int code = 0;
          >> > if(id != null)
          >> > {
          >> > code = id.hashCode();
          >> > }
          >> > return code;
          >> >}
          >> >
          >> >public boolean equals(Object obj)
          >> >{
          >> > if( obj == null || !(obj instanceof BasePK) )
          >> > {
          >> > return false;
          >> > }
          >> > else if( (this.id == ((BasePK)obj).id) ||
          >> > (this.id != null && this.id.equals( obj ) ) )
          >> > {
          >> > return true;
          >> > }
          >> > else
          >> > {
          >> > return false;
          >> > }
          >> >}
          >> >
          >> >
          >> >The OID class has a private attribute byteArray of type byte[16].
          >It's
          >> >hashcode
          >> >and equals methods are:
          >> >
          >> >public int hashcode() {
          >> > return (int)( (getMostSignificantBytes() >> 32) & 0xFFFF +
          >> > (getMostSignificantBytes() ) & 0xFFFF +
          >> > (getLeastSignificantBytes() >> 32 ) & 0xFFFF +
          >> > (getLeastSignificantBytes() ) & 0xFFFF);
          >> >}
          >> >
          >> >public long getMoSignificantBytes() {
          >> > long mb;
          >> > mb=(((long)byteArray[15])&0xFF)<<56 |
          >> > (((long)byteArray[14])&0xFF)<<48 |
          >> > (((long)byteArray[13])&0xFF)<<40 |
          >> > (((long)byteArray[12])&0xFF)<<32 |
          >> > (((long)byteArray[11])&0xFF)<<24 |
          >> > (((long)byteArray[10])&0xFF)<<16 |
          >> > (((long)byteArray[9])&0xFF)<< 8 |
          >> > (((long)byteArray[8])&0xFF);
          >> > return mb;
          >> >}
          >> >
          >> >public long getLeastSignificantBytes() {
          >> > long lsb;
          >> > lsb=(((long)byteArray[7])&0xFF)<<56 |
          >> > (((long)byteArray[6])&0xFF)<<48 |
          >> > (((long)byteArray[5])&0xFF)<<40 |
          >> > (((long)byteArray[4])&0xFF)<<32 |
          >> > (((long)byteArray[3])&0xFF)<<24 |
          >> > (((long)byteArray[2])&0xFF)<<16 |
          >> > (((long)byteArray[1])&0xFF)<< 8 |
          >> > (((long)byteArray[0])&0xFF);
          >> > return lsb;
          >> >}
          >> >
          >> >public boolean equals( Object obj ) {
          >> > boolean equality = false;
          >> > if( obj == this )
          >> > {
          >> > equality = true;
          >> > }
          >> > else if( obj != null && obj instanceof OID )
          >> > {
          >> > OID other = (OID) obj;
          >> > equality = ( (other.getLeastSignificantBytes() ==
          >> > getLeastSignificantBytes() ) &&
          >> > (other.getMostSignificantBytes() ==
          >> > getMostSignificantBytes() ) );
          >> > }
          >> > return equality;
          >> >}
          >> >
          >> >
          >> >Rob Woollen <[email protected]> wrote:
          >> >>
          >> >>
          >> >>Can you show me the equals and hashCode implementations for your
          >pk
          >> >class?
          >> >>
          >> >>-- Rob
          >> >>
          >> >>Matt Clark wrote:
          >> >>
          >> >>> Rob,
          >> >>>
          >> >>> My BasePK implements Serializable, and contains one public member
          >> >variable
          >> >>of
          >> >>> type OID, which is a guid (or close to it anyway :) ) byte string.
          >> >>>
          >> >>> When I put in debugs to print out the balance and the System.identity(hashcode)
          >> >>> inside the callbacks, here is the sequence I see: (I've left out
          >the
          >> >>primary key
          >> >>> because it is somewhat long, but I've verified that it is the same
          >> >>for all calls
          >> >>> represented here )
          >> >>>
          >> >>> //Client creates account
          >> >>> ejbCreate: Balance 100 Hashcode 3452225
          >> >>> getAccountVO: Balance 100 Hashcode 3452225
          >> >>> ejbStore: Balance 100 Hashcode 3452225
          >> >>>
          >> >>> //Client calls depositAndGetNewBalance on remote interface
          >> >>> //Container starts transaction
          >> >>> // Container calls depositAndGetNewBalance on bean
          >> >>> //enter BankTransactionService.deposit
          >> >>> findByPrimaryKey: Hashcode: 721349
          >> >>> ejbLoad: Balance 100 Hashcode 721349
          >> >>> getAccountVO: Balance 100 Hashcode 721349
          >> >>> setAccountVO: Balance 150 Hashcode 721349
          >> >>> //exit BankTransactionService.deposit
          >> >>>
          >> >>> //enter BalanceService.getBalance
          >> >>> findByPrimaryKey: Hashcode 2748333
          >> >>> ejbLoad: Balance 100 Hashcode 2748333
          >> >>> //exit BankTellerService.getBalance
          >> >>> //exit depositAndGetNewBalance on bean
          >> >>>
          >> >>> ejbStore: Balance 150 Hashcode 721349
          >> >>> ejbStore: Balance 100 Hashcode 2748333
          >> >>> //Transaction done
          >> >>> //Client deposit done
          >> >>>
          >> >>> //Client removes account
          >> >>> findByPrimaryKey: Hashcode 5932239
          >> >>> ejbLoad: Balance 100 Hashcode 5932239
          >> >>> ejbRemove: Balance 100 Hashcode 5932239
          >> >>> //Client done
          >> >>>
          >> >>> Let me know if you need any mroe detail...
          >> >>>
          >> >>> Matt
          >> >>> Rob Woollen <[email protected]> wrote:
          >> >>> >
          >> >>> >
          >> >>> >You're going to have to provide some more info for me to know
          >what's
          >> >>> >going on.
          >> >>> >
          >> >>> >I'd suggest that you add print messages like this to the callbacks:
          >> >>> >
          >> >>> >System.out.println("ejbLoad called in id: "+System.identityHashCode(this)+
          >> >>> > " with pk: "+ctx.getPrimaryKey());
          >> >>> >
          >> >>> >Put a message like this in ejbLoad, ejbStore, ejbFindByPrimaryKey
          >> >>(also
          >> >>> >any other finders that
          >> >>> >you're using), and the business methods.
          >> >>> >
          >> >>> >Show me the output, and I'll have a look.
          >> >>> >
          >> >>> >Also, what class are you using for the primary key of the Account
          >> >>bean?
          >> >>> >
          >> >>> >-- Rob
          >> >>> >
          >> >>> >Matt Clark wrote:
          >> >>> >
          >> >>> >> Correction to step 5 in the email. BalanceService returns the
          >> >balance
          >> >>> >of AccountA,
          >> >>> >> not the AccountBean itself...
          >> >>> >>
          >> >>> >> "Matt Clark" <[email protected]> wrote:
          >> >>> >> >
          >> >>> >> >We're having a problem in our app which I've been able to duplicate
          >> >>> >using
          >> >>> >> >a simple
          >> >>> >> >bank account example. In this example we're using BMP, Container
          >> >>> >managed
          >> >>> >> >tx's,
          >> >>> >> >and all methods are marked as required. All session beans are
          >> >stateless.
          >> >>> >> >
          >> >>> >> >State prior to client call: Account A has a balance of $100.
          >> >>> >> >
          >> >>> >> >(1) Client makes a call to BankTellerService to deposit $50
          >into
          >> >>Account
          >> >>> >> >A:
          >> >>> >> > long depositAndGetBalance( accountId, amountToDeposit
          >).
          >> >>> >> >
          >> >>> >> >All of the following are in the transaction started by the
          >call
          >> >>in
          >> >>> >(1).
          >> >>> >> >
          >> >>> >> >(2) BankTellerService calls:
          >> >>> >> > void BankTransactionService.deposit( amountToDeposit )
          >> >>> >> >
          >> >>> >> >3) BankTransactionService looks up AccountBean and increases
          >it's
          >> >>> >balance
          >> >>> >> >by amountToDeposit
          >> >>> >> >
          >> >>> >> >4) BankTellerSevice calls BalanceService to get the balance
          >of
          >> >>Account
          >> >>> >> >A:
          >> >>> >> > long BalanceService.getBalance( accountId )
          >> >>> >> >
          >> >>> >> >5) BalanceService looks up the AccountBean for account A and
          >returns
          >> >>> >> >it
          >> >>> >> >
          >> >>> >> >6) BankTellerService returns the balance to the client
          >> >>> >> >
          >> >>> >> >The balance returned is $100, which is identical to the initial
          >> >>state
          >> >>> >> >and does
          >> >>> >> >not reflect the deposit of $50.
          >> >>> >> >
          >> >>> >> >It appears that two seperate instances of Account A are being
          >> >loaded,
          >> >>> >> >with the
          >> >>> >> >first instance receiving the deposit, and then the second instance
          >> >>> >being
          >> >>> >> >loaded.
          >> >>> >> > ejbStore is called sequentially, which means the the first
          >instance
          >> >>> >> >stores the
          >> >>> >> >correct balance of $150, and then is overwritten by the second
          >> >>instance
          >> >>> >> >with a
          >> >>> >> >balance of $100.
          >> >>> >> >
          >> >>> >> >When we change the deployment descriptor to say <delay-updates-until-end-of-tx>false</delay...>,
          >> >>> >> >our problems are solved.
          >> >>> >> >
          >> >>> >> >Current answers from BEA support have said that this is by
          >design
          >> >>> >and
          >> >>> >> >the default
          >> >>> >> >setting of delay=false causes this problem but is default for
          >> >performance
          >> >>> >> >reasons.
          >> >>> >> > I just can't accept that because that would seem to violate
          >sectino
          >> >>> >> >17.7 of the
          >> >>> >> >spec, which states that the container is responsible for detecting
          >> >>> >this
          >> >>> >> >diamond
          >> >>> >> >and resolving the problem.
          >> >>> >> >
          >> >>> >> >Any ideas?
          >> >>> >> >
          >> >>> >> >Thanks,
          >> >>> >> >Matt
          >> >>> >
          >> >>
          >> >>--
          >> >>
          >> >>----------------------------------------------------------------------
          >> >>
          >> >>AVAILABLE NOW!: Building J2EE Applications & BEA WebLogic Server
          >> >>
          >> >>by Michael Girdley, Rob Woollen, and Sandra Emerson
          >> >>
          >> >>http://learnWebLogic.com
          >> >>
          >> >>
          >> >>
          >> >>
          >> >><!doctype html public "-//w3c//dtd html 4.0 transitional//en">
          >> >><html>
          >> >>Can you show me the equals and hashCode implementations for your
          >pk
          >> >class?
          >> >><p>-- Rob
          >> >><p>Matt Clark wrote:
          >> >><blockquote TYPE=CITE>Rob,
          >> >><p>My BasePK implements Serializable, and contains one public member
          >> >>variable
          >> >>of
          >> >><br>type OID, which is a guid (or close to it anyway :) ) byte string.
          >> >><p>When I put in debugs to print out the balance and the System.identity(hashcode)
          >> >><br>inside the callbacks, here is the sequence I see: (I've left
          >out
          >> >>the
          >> >>primary key
          >> >><br>because it is somewhat long, but I've verified that it is the
          >same
          >> >>for all calls
          >> >><br>represented here )
          >> >><p>//Client creates account
          >> >><br>ejbCreate: Balance 100 Hashcode 3452225
          >> >><br>getAccountVO: Balance 100 Hashcode 3452225
          >> >><br>ejbStore: Balance 100 Hashcode 3452225
          >> >><p>//Client calls depositAndGetNewBalance on remote interface
          >> >><br> //Container starts transaction
          >> >><br> // Container calls depositAndGetNewBalance on
          >> >>bean
          >> >><br> //enter BankTransactionService.deposit
          >> >><br> findByPrimaryKey: Hashcode:
          >> >>721349
          >> >><br> ejbLoad: Balance 100 Hashcode
          >> >>721349
          >> >><br> getAccountVO: Balance
          >> >>100
          >> >>Hashcode 721349
          >> >><br> setAccountVO: Balance
          >> >>150
          >> >>Hashcode 721349
          >> >><br> //exit BankTransactionService.deposit
          >> >><p> //enter BalanceService.getBalance
          >> >><br> findByPrimaryKey: Hashcode
          >> >>2748333
          >> >><br> ejbLoad: Balance
          >> >>100
          >> >>Hashcode 2748333
          >> >><br> //exit BankTellerService.getBalance
          >> >><br> //exit depositAndGetNewBalance on bean
          >> >><p> ejbStore: Balance 150 Hashcode 721349
          >> >><br> ejbStore: Balance 100 Hashcode 2748333
          >> >><br> //Transaction done
          >> >><br>//Client deposit done
          >> >><p>//Client removes account
          >> >><br>findByPrimaryKey: Hashcode 5932239
          >> >><br>ejbLoad: Balance 100 Hashcode 5932239
          >> >><br>ejbRemove: Balance 100 Hashcode 5932239
          >> >><br>//Client done
          >> >><p>Let me know if you need any mroe detail...
          >> >><p>Matt
          >> >><br>Rob Woollen <[email protected]> wrote:
          >> >><br>>
          >> >><br>>
          >> >><br>>You're going to have to provide some more info for me to know
          >what's
          >> >><br>>going on.
          >> >><br>>
          >> >><br>>I'd suggest that you add print messages like this to the callbacks:
          >> >><br>>
          >> >><br>>System.out.println("ejbLoad called in id: "+System.identityHashCode(this)+
          >> >><br>>
          >> >>" with pk: "+ctx.getPrimaryKey());
          >> >><br>>
          >> >><br>>Put a message like this in ejbLoad, ejbStore, ejbFindByPrimaryKey
          >> >>(also
          >> >><br>>any other finders that
          >> >><br>>you're using), and the business methods.
          >> >><br>>
          >> >><br>>Show me the output, and I'll have a look.
          >> >><br>>
          >> >><br>>Also, what class are you using for the primary key of the Account
          >> >>bean?
          >> >><br>>
          >> >><br>>-- Rob
          >> >><br>>
          >> >><br>>Matt Clark wrote:
          >> >><br>>
          >> >><br>>> Correction to step 5 in the email. BalanceService returns
          >> >>the balance
          >> >><br>>of AccountA,
          >> >><br>>> not the AccountBean itself...
          >> >><br>>>
          >> >><br>>> "Matt Clark" <[email protected]> wrote:
          >> >><br>>> >
          >> >><br>>> >We're having a problem in our app which I've been able to
          >duplicate
          >> >><br>>using
          >> >><br>>> >a simple
          >> >><br>>> >bank account example. In this example we're using BMP,
          >> >>Container
          >> >><br>>managed
          >> >><br>>> >tx's,
          >> >><br>>> >and all methods are marked as required. All session beans
          >are
          >> >>stateless.
          >> >><br>>> >
          >> >><br>>> >State prior to client call: Account A has a balance of $100.
          >> >><br>>> >
          >> >><br>>> >(1) Client makes a call to BankTellerService to deposit $50
          >> >into
          >> >>Account
          >> >><br>>> >A:
          >> >><br>>> > long depositAndGetBalance( accountId,
          >> >>amountToDeposit ).
          >> >><br>>> >
          >> >><br>>> >All of the following are in the transaction started by the
          >call
          >> >>in
          >> >><br>>(1).
          >> >><br>>> >
          >> >><br>>> >(2) BankTellerService calls:
          >> >><br>>> > void BankTransactionService.deposit(
          >> >>amountToDeposit
          >> >>)
          >> >><br>>> >
          >> >><br>>> >3) BankTransactionService looks up AccountBean and increases
          >> >>it's
          >> >><br>>balance
          >> >><br>>> >by amountToDeposit
          >> >><br>>> >
          >> >><br>>> >4) BankTellerSevice calls BalanceService to get the balance
          >> >of
          >> >>Account
          >> >><br>>> >A:
          >> >><br>>> > long BalanceService.getBalance( accountId
          >> >>)
          >> >><br>>> >
          >> >><br>>> >5) BalanceService looks up the AccountBean for account A
          >and
          >> >>returns
          >> >><br>>> >it
          >> >><br>>> >
          >> >><br>>> >6) BankTellerService returns the balance to the client
          >> >><br>>> >
          >> >><br>>> >The balance returned is $100, which is identical to the initial
          >> >>state
          >> >><br>>> >and does
          >> >><br>>> >not reflect the deposit of $50.
          >> >><br>>> >
          >> >><br>>> >It appears that two seperate instances of Account A are being
          >> >>loaded,
          >> >><br>>> >with the
          >> >><br>>> >first instance receiving the deposit, and then the second
          >instance
          >> >><br>>being
          >> >><br>>> >loaded.
          >> >><br>>> > ejbStore is called sequentially, which means the the first
          >> >instance
          >> >><br>>> >stores the
          >> >><br>>> >correct balance of $150, and then is overwritten by the second
          >> >>instance
          >> >><br>>> >with a
          >> >><br>>> >balance of $100.
          >> >><br>>> >
          >> >><br>>> >When we change the deployment descriptor to say <delay-updates-until-end-of-tx>false</delay...>,
          >> >><br>>> >our problems are solved.
          >> >><br>>> >
          >> >><br>>> >Current answers from BEA support have said that this is by
          >design
          >> >><br>>and
          >> >><br>>> >the default
          >> >><br>>> >setting of delay=false causes this problem but is default
          >for
          >> >>performance
          >> >><br>>> >reasons.
          >> >><br>>> > I just can't accept that because that would seem to violate
          >> >>sectino
          >> >><br>>> >17.7 of the
          >> >><br>>> >spec, which states that the container is responsible for
          >detecting
          >> >><br>>this
          >> >><br>>> >diamond
          >> >><br>>> >and resolving the problem.
          >> >><br>>> >
          >> >><br>>> >Any ideas?
          >> >><br>>> >
          >> >><br>>> >Thanks,
          >> >><br>>> >Matt
          >> >><br>></blockquote>
          >> >>
          >> >><pre>--
          >> >>
          >> >>----------------------------------------------------------------------
          >> >>
          >> >>AVAILABLE NOW!: Building J2EE Applications & BEA WebLogic Server
          >> >>
          >> >>by Michael Girdley, Rob Woollen, and Sandra Emerson
          >> >>
          >> >>http://learnWebLogic.com</pre>
          >> >> </html>
          >> >>
          >> >>
          >> >
          >
          >
          ><!doctype html public "-//w3c//dtd html 4.0 transitional//en">
          ><html>
          >The reason I asked about your primary key class is that your previous
          >message
          >shows:
          ><blockquote TYPE=CITE>
          ><pre>//Client calls depositAndGetNewBalance on remote interface
          >  //Container starts transaction
          >    // Container calls depositAndGetNewBalance on bean
          >      //enter BankTransactionService.deposit
          >        findByPrimaryKey: Hashcode:
          >721349
          >        ejbLoad: Balance 100 Hashcode
          >721349
          >        getAccountVO: Balance 100
          >Hashcode 721349
          >        setAccountVO: Balance 150
          >Hashcode 721349
          >      //exit BankTransactionService.deposit
          >
          >      //enter BalanceService.getBalance
          >        findByPrimaryKey: Hashcode
          >2748333
          >        ejbLoad:  Balance 100
          >Hashcode 2748333</pre>
          ></blockquote>
          >This is where I'm concerned.  Assuming that the deposit call and
          >the
          >getBalance call both call the entity bean with the same pk in the same
          >tx,  then there should only be one instance used.  However,
          >here
          >we see 2 instances.
          ><p>My guess is still that your pk hashCode and equals are off. 
          >(The
          >container uses them to determine whether there is already an instance
          >for
          >this pk in use.)
          ><p>I would suggest that you add some debug messages to your hashCode
          >and
          >equals methods.  In particular, check that when a.equals(b), a.hashCode()
          >== b.hashCode().  Also make sure that you're equals() method is
          >not
          >returning false unexpectedly.
          ><p>If you're still having problems, post again, and we'll go from there.
          ><p>-- Rob
          ><blockquote TYPE=CITE>
          ><pre>
          >      //exit BankTellerService.getBalance
          >    //exit depositAndGetNewBalance on bean
          >
          >
          >    ejbStore: Balance 150 Hashcode 721349
          >    ejbStore: Balance 100 Hashcode 2748333
          >  //Transaction done
          >//Client deposit done
          >
          >//Client removes account
          >findByPrimaryKey: Hashcode 5932239
          >ejbLoad: Balance 100 Hashcode 5932239
          >ejbRemove: Balance 100 Hashcode 5932239
          >//Client done</pre>
          ></blockquote>
          >
          ><p>Matt Clark wrote:
          ><blockquote TYPE=CITE>Rob,
          ><p>After thinking about why you asked to see the pk methods, I went and
          >looked at
          ><br>our implementation, and noticed that the hashcode method on OID is
          >faulty (missing
          ><br>some parentheses). However, afetr I fixed it we're still getting
          >the
          >same problem.
          ><br> If I print out pk.hashCode(), I get all the same hashcode. 
          >If i print out System.identityHashcode(
          ><br>pk ), I get different hashcodes, which I understand is because that
          >call calls
          ><br>Object.hashCode even if it has been overridden.
          ><p>Hope this helps,
          ><p>Matt
          ><p>"Matt Clark" <[email protected]> wrote:
          ><br>>
          ><br>>Sure.
          ><br>>
          ><br>>The BasePK class has a private attribute "id" of type OID, and here
          >are
          ><br>>the hashcode
          ><br>>and equals methods for BasePK:
          ><br>>
          ><br>>public int hashCode()
          ><br>>{
          ><br>>    int code = 0;
          ><br>>    if(id != null)
          ><br>>    {
          ><br>>        code = id.hashCode();
          ><br>>    }
          ><br>>    return code;
          ><br>>}
          ><br>>
          ><br>>public boolean equals(Object obj)
          ><br>>{
          ><br>>    if( obj == null || !(obj instanceof BasePK) )
          ><br>>    {
          ><br>>        return false;
          ><br>>    }
          ><br>>    else if( (this.id == ((BasePK)obj).id) ||
          ><br>>            
          >(this.id != null && this.id.equals( obj ) ) )
          ><br>>    {
          ><br>>        return true;
          ><br>>    }
          ><br>>    else
          ><br>>    {
          ><br>>        return false;
          ><br>>    }
          ><br>>}
          ><br>>
          ><br>>
          ><br>>The OID class has a private attribute byteArray of type byte[16].
          >It's
          ><br>>hashcode
          ><br>>and equals methods are:
          ><br>>
          ><br>>public int hashcode() {
          ><br>>    return (int)( (getMostSignificantBytes() >> 32)
          >& 0xFFFF +
          ><br>>                 
          >(getMostSignificantBytes()      ) & 0xFFFF
          >+
          ><br>>                 
          >(getLeastSignificantBytes() >> 32 ) & 0xFFFF +
          ><br>>                 
          >(getLeastSignificantBytes()       ) &
          >0xFFFF);
          ><br>>}
          ><br>>
          ><br>>public long getMoSignificantBytes() {
          ><br>>    long mb;
          ><br>>    mb=(((long)byteArray[15])&0xFF)<<56
          >|
          ><br>>        (((long)byteArray[14])&0xFF)<<48
          >|
          ><br>>        (((long)byteArray[13])&0xFF)<<40
          >|
          ><br>>        (((long)byteArray[12])&0xFF)<<32
          >|
          ><br>>        (((long)byteArray[11])&0xFF)<<24
          >|
          ><br>>        (((long)byteArray[10])&0xFF)<<16
          >|
          ><br>>        (((long)byteArray[9])&0xFF)<<
          >8 |
          ><br>>        (((long)byteArray[8])&0xFF);
          ><br>>    return mb;
          ><br>>}
          ><br>>
          ><br>>public long getLeastSignificantBytes() {
          ><br>>    long lsb;
          ><br>>    lsb=(((long)byteArray[7])&0xFF)<<56
          >|
          ><br>>        (((long)byteArray[6])&0xFF)<<48
          >|
          ><br>>        (((long)byteArray[5])&0xFF)<<40
          >|
          ><br>>        (((long)byteArray[4])&0xFF)<<32
          >|
          ><br>>        (((long)byteArray[3])&0xFF)<<24
          >|
          ><br>>        (((long)byteArray[2])&0xFF)<<16
          >|
          ><br>>        (((long)byteArray[1])&0xFF)<<
          >8 |
          ><br>>        (((long)byteArray[0])&0xFF);
          ><br>>    return lsb;
          ><br>>}
          ><br>>
          ><br>>public boolean equals( Object obj ) {
          ><br>>    boolean equality = false;
          ><br>>    if( obj == this )
          ><br>>    {
          ><br>>       equality = true;
          ><br>>    }
          ><br>>    else if( obj != null && obj instanceof
          >OID )
          ><br>>    {
          ><br>>        OID other = (OID) obj;
          ><br>>        equality = ( (other.getLeastSignificantBytes()
          >==
          ><br>>                       
          >getLeastSignificantBytes() ) &&
          ><br>>                    
          >(other.getMostSignificantBytes() ==
          ><br>>                       
          >getMostSignificantBytes() ) );
          ><br>>    }
          ><br>>    return equality;
          ><br>>}
          ><br>>
          ><br>>
          ><br>>Rob Woollen <[email protected]> wrote:
          ><br>>>
          ><br>>>
          ><br>>>Can you show me the equals and hashCode implementations for your
          >pk
          ><br>>class?
          ><br>>>
          ><br>>>-- Rob
          ><br>>>
          ><br>>>Matt Clark wrote:
          ><br>>>
          ><br>>>> Rob,
          ><br>>>>
          ><br>>>> My BasePK implements Serializable, and contains one public member
          ><br>>variable
          ><br>>>of
          ><br>>>> type OID, which is a guid (or close to it anyway :) ) byte string.
          ><br>>>>
          ><br>>>> When I put in debugs to print out the balance and the System.identity(hashcode)
          ><br>>>> inside the callbacks, here is the sequence I see: (I've left
          >out
          >the
          ><br>>>primary key
          ><br>>>> because it is somewhat long, but I've verified that it is the
          >same
          ><br>>>for all calls
          ><br>>>> represented here )
          ><br>>>>
          ><br>>>> //Client creates account
          ><br>>>> ejbCreate: Balance 100 Hashcode 3452225
          ><br>>>> getAccountVO: Balance 100 Hashcode 3452225
          ><br>>>> ejbStore: Balance 100 Hashcode 3452225
          ><br>>>>
          ><br>>>> //Client calls depositAndGetNewBalance on remote interface
          ><br>>>>   //Container starts transaction
          ><br>>>>     // Container calls depositAndGetNewBalance
          >on bean
          ><br>>>>       //enter BankTransactionService.deposit
          ><br>>>>         findByPrimaryKey:
          >Hashcode: 721349
          ><br>>>>         ejbLoad: Balance
          >100 Hashcode 721349
          ><br>>>>         getAccountVO:
          >Balance
          >100 Hashcode 721349
          ><br>>>>         setAccountVO:
          >Balance
          >150 Hashcode 721349
          ><br>>>>       //exit BankTransactionService.deposit
          ><br>>>>
          ><br>>>>       //enter BalanceService.getBalance
          ><br>>>>         findByPrimaryKey:
          >Hashcode 2748333
          ><br>>>>         ejbLoad: 
          >Balance 100 Hashcode 2748333
          ><br>>>>       //exit BankTellerService.getBalance
          ><br>>>>     //exit depositAndGetNewBalance on bean
          ><br>>>>
          ><br>>>>     ejbStore: Balance 150 Hashcode 721349
          ><br>>>>     ejbStore: Balance 100 Hashcode 2748333
          ><br>>>>   //Transaction done
          ><br>>>> //Client deposit done
          ><br>>>>
          ><br>>>> //Client removes account
          ><br>>>> findByPrimaryKey: Hashcode 5932239
          ><br>>>> ejbLoad: Balance 100 Hashcode 5932239
          ><br>>>> ejbRemove: Balance 100 Hashcode 5932239
          ><br>>>> //Client done
          ><br>>>>
          ><br>>>> Let me know if you need any mroe detail...
          ><br>>>>
          ><br>>>> Matt
          ><br>>>> Rob Woollen <[email protected]> wrote:
          ><br>>>> >
          ><br>>>> >
          ><br>>>> >You're going to have to provide some more info for me to know
          >what's
          ><br>>>> >going on.
          ><br>>>> >
          ><br>>>> >I'd suggest that you add print messages like this to the callbacks:
          ><br>>>> >
          ><br>>>> >System.out.println("ejbLoad called in id: "+System.identityHashCode(this)+
          ><br>>>> >                                     
          >" with pk: "+ctx.getPrimaryKey());
          ><br>>>> >
          ><br>>>> >Put a message like this in ejbLoad, ejbStore, ejbFindByPrimaryKey
          ><br>>>(also
          ><br>>>> >any other finders that
          ><br>>>> >you're using), and the business methods.
          ><br>>>> >
          ><br>>>> >Show me the output, and I'll have a look.
          ><br>>>> >
          ><br>>>> >Also, what class are you using for the primary key of the Account
          ><br>>>bean?
          ><br>>>> >
          ><br>>>> >-- Rob
          ><br>>>> >
          ><br>>>> >Matt Clark wrote:
          ><br>>>> >
          ><br>>>> >> Correction to step 5 in the email.  BalanceService returns
          >the
          ><br>>balance
          ><br>>>> >of AccountA,
          ><br>>>> >> not the AccountBean itself...
          ><br>>>> >>
          ><br>>>> >> "Matt Clark" <[email protected]> wrote:
          ><br>>>> >> >
          ><br>>>> >> >We're having a problem in our app which I've been able to
          >duplicate
          ><br>>>> >using
          ><br>>>> >> >a simple
          ><br>>>> >> >bank account example.  In this example we're using BMP,
          >Container
          ><br>>>> >managed
          ><br>>>> >> >tx's,
          ><br>>>> >> >and all methods are marked as required. All session beans
          >are
          ><br>>stateless.
          ><br>>>> >> >
          ><br>>>> >> >State prior to client call: Account A has a balance of $100.
          ><br>>>> >> >
          ><br>>>> >> >(1) Client makes a call to BankTellerService to deposit $50
          >into
          ><br>>>Account
          ><br>>>> >> >A:
          ><br>>>> >> >    long  depositAndGetBalance( accountId,
          >amountToDeposit ).
          ><br>>>> >> >
          ><br>>>> >> >All of the following are in the transaction started by the
          >call
          ><br>>>in
          ><br>>>> >(1).
          ><br>>>> >> >
          ><br>>>> >> >(2) BankTellerService calls:
          ><br>>>> >> >     void BankTransactionService.deposit(
          >amountToDeposit )
          ><br>>>> >> >
          ><br>>>> >> >3) BankTransactionService looks up AccountBean and increases
          >it's
          ><br>>>> >balance
          ><br>>>> >> >by amountToDeposit
          ><br>>>> >> >
          ><br>>>> >> >4) BankTellerSevice calls BalanceService to get the balance
          >of
          ><br>>>Account
          ><br>>>> >> >A:
          ><br>>>> >> >     long BalanceService.getBalance(
          >accountId
          >)
          ><br>>>> >> >
          ><br>>>> >> >5) BalanceService looks up the AccountBean for account A
          >and
          >returns
          ><br>>>> >> >it
          ><br>>>> >> >
          ><br>>>> >> >6) BankTellerService returns the balance to the client
          ><br>>>> >> >
          ><br>>>> >> >The balance returned is $100, which is identical to the initial
          ><br>>>state
          ><br>>>> >> >and does
          ><br>>

Similar Messages

  • Question on reentrant beans

    Hi all,
    If there is a StatelessSessionBean that has two methods in its remote interface
    say
    method1() and method2(). In the bean implementation consider that method1() calls
    method2(),
    now my questions are:
         1) Can this scenario be called as re-entrant.
         2) What is the problem of calling a method in the same bean using "this" keyword.
         3) What problems in the transactions will happen in this scenario.
    Thanks in advance,
    Chandru

    Stefan,
    You are mixing terminology.
    What you are describing is concurrency (although now that I think about
    it, if you somehow manage to associate your two threads with the same
    transactional context then you'll possibly create a transaction diamond).
    I don't think there is a situation at all when Weblogic will allow a
    second thread to access the instance while another thread is still in
    the middle of an EJB call. Depending on the concurrency strategy for
    entity beans you can get parallel access to instances with the same PKs
    but it will not be one and the same instance.
    For stateless session beans each call can hit a different available
    instance since it doesn't matter which one will do the job.
    You can get a reentrant call when from inside an EJB (I haven't dealt
    with statefull session EJBs but it's probably very similar) business
    method call you either call another EJB business method via the
    remote/local interfaces (ejbObject) that will hit the same instance (if
    you are in the same transaction you already have the access to that
    particular instance so there is no concurrency issue).
    Then you are reentering the same instance via the remote/local interface
    and it is going to be a reentrant call.
    If you simply call the method it is a normal Java method call and the
    container doesn't get involved and there you can get recursion.
    Dejan
    Stefan wrote:
    Re-entrance is when the executing thread A gets suspended in the
    middle of a method call and thread B calls the same method on the very
    same object. When thread A gets to continues two things might happen:
    1 The method uses only stack variables and A is able to carry on its
    work. 2 If the metod have static variables (not for Java) or uses any
    memeber variables thread B might have messed things upp for A (this
    situation calls for some sort of synchronisation). In situation 1 we
    have a re-entrant method.
    method1 calling method1 is called recursion.
    Fortunattly having more than one thread operating on one object should
    not happen with EJBs. It can happen if your EJB uses som static
    methods or singeltons.
    Regards
    /Stefan

  • TS1702 Can't purchase gold bars from diamond dash.. Says complete transaction through iTunes support??

    I'm trying to purchase a in app for gold blocks from the game "diamond dash" it keeps saying "contact iTunes support to compleat transaction" it's driving me nuts! I can purchase coins but not gold??
    Worked last night but no good today.. Help me please.. I'm hooked!!

    Sorry, we could have no way of knowing what the problem would be. You will need to do what it says, contact iTunes Support. These are user-to-user support forums, if you thought you were contacting Apple by posting here. Go here:
    http://www.apple.com/emea/support/itunes/contact.html
    to contact the iTunes Store.
    Regards.

  • Why can't I buy diamonds in hay day?? It only says  contact iTunes support to complete the transaction

    I can't buy diamonds in hay day
    And gems in happy street,Robinson,campus life and other games
    It only came up to contact iTunes support to complete transaction
    Why???

    Itunes support will have to "fix it",
    It is not something you can do.  itunes support will have to correct it.

  • TS1702 Hello , I am registered App Store customer, yesterday I have payed 0,99 $ in hay day app for 130 diamonds , I don't know what happened wile transaction but my bank took from me money but I didn't get anything .

    Hello , I am registered App Store customer , yesterday I have payed 0,99 $ in hay day app for 130 diamonds , I don't know what happened wile transaction but my bank took from me money but I didn't get anything . i hope you will help me
    <Email Edited by Host>

    Not a good idea to post your email address on a Public Forum. I have asked the Hosts to remove it.
    aerolasha wrote:
    ... took from me money but I didn't get anything . ..
    To Contact iTunes Customer Service and request assistance
    Use this Link  >  Apple  Support  iTunes Store  Contact

  • When i buy , in game ( diamond dash) , (bable witch) ... App stor say , please contact itunes support to conplete this transaction

    When i buy , in game ( diamond dash) , (bable witch) ... App stor say , please contact itunes support to conplete this transaction

    You can contact iTunes support by going to this page, selecting iTunes > iTunes Store and sending them the details. Just so you know, the people on these forums are just other Apple product users like yourself, Apple does not generally answer questions here.
    Best of luck getting things straightened out.

  • Diamond Wireless - Failure to recognize trade-up credit

    I went to Diamond Wireless, a "Premium" retailer for Verizon Wireless (1046 N Colony Rd, Wallingford, Connecticut, 06492 Phone:860-266-8119) to upgrade my wife's iPhone 4 and my iPhone 4S to the iPhone 6.  My wife and I were told we'd each receive a $200 VISA gift card for the upgrade and placed our order, one 16GB iPhone 6 and one 64GB iPhone 6.  The phones were on backorder and arrived 10/22.  My wife and I went to the vendor on 10/26 to complete the transaction.  I asked to confirm the $400 in total trade-in credits but was given a run around.  I was told that Verizon Wireless changed the method for which the evaluation is made and the phones had to be upgraded online for the promo.  This wasn't communicated by the vendor prior to this time.  Needless to say, they wouldn't offer the same deal and seeing that 10/15 has passed, no one will.  I imagine that Diamond Wireless is to blame for this as they failed to communicate the method in which this deal was to be honored.  As a long time customer of Verizon Wireless, I'd like to see Verizon step up for their customer and honor the deal and correct the mistake of their partner, Diamond Wireless.  I don't find this acceptable and it's tough to determine who is to blame.  I think Diamond Wireless but they point the finger at Verizon.  Please let me know my options.  I'd like to be viewed as a valued customer and see Verizon step up to the plate to do what's right.  I look forward to your response.  Thank you.

    1) use SMB
    2) try power down or off and select update using airport Utility
    3) try using apple's Bonjour printer setup and using their suggested driver instead of windows

  • Why I can't buy diamond in game Castle Kingdom ?

    Tại sao tôi không mua được diamond trong game Castle Kingdom ? Lúc tôi mua , nó thông báo rằng "Please contact Itunes Support to complete this transaction" .

    Why can not I buy the diamond in the game Castle Kingdom? When I buy, it says "Please contact iTunes Support to complete this transaction." 

  • TS2446 hi .My transaction is not complete.

    I  want to buy 799 coin(diamond)for 9.99. when I confirm my purchase...show  (please contact itunes support to complete this transaction)

    These are user-to-user forums, you can contact iTunes support here : http://www.apple.com/support/itunes/contact/ - click on Contact iTunes Store Support on the right-hand side of the page

  • Error while comitting a transaction in oSB. The following is the error stack

    Error while comitting a transaction in OSB. The following is the error stack
    <Apr 20, 2015 12:00:15 AM MDT> <Error> <EJB> <BEA-010026> <Exception occurred during commit of transaction Xid=BEA1-1AE41F1CAE45F2B146FD(296700848),Status=Rolled back. [Reason=Unknown],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=2,seconds left=120,XAServerResourceInfo[WLStore_SOA_PRDKS_DOMAIN_FileStore_SOA_MS2]=(ServerResourceInfo[WLStore_SOA_PRDKS_DOMAIN_FileStore_SOA_MS2]=(state=new,assigned=none),xar=null,re-Registered = false),XAServerResourceInfo[WLStore_OSB_PRDKS_DOMAIN_FileStore_auto_1]=(ServerResourceInfo[WLStore_OSB_PRDKS_DOMAIN_FileStore_auto_1]=(state=rolledback,assigned=OSB_MS1),xar=WLStore_OSB_PRDKS_DOMAIN_FileStore_auto_11603460297,re-Registered = false),XAServerResourceInfo[weblogic.jdbc.jta.DataSource]=(ServerResourceInfo[weblogic.jdbc.jta.DataSource]=(state=ended,assigned=none),xar=CMSDS,re-Registered = false),SCInfo[OSB_PRDKS_DOMAIN+OSB_MS1]=(state=rolledback),SCInfo[SOA_PRDKS_DOMAIN+SOA_MS2]=(state=pre-prepared),properties=({}),local properties=({weblogic.jdbc.jta.CMSDS=[ No XAConnection is attached to this TxInfo ]}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=OSB_MS1+soaprd-vip-osb-ms1.cos.is.keysight.com:8001+OSB_PRDKS_DOMAIN+t3+, XAResources={eis/wls/Queue, WEDB_EVEREST_OSB_PRDKS_DOMAIN, XREFDS_OSB_PRDKS_DOMAIN, eis/activemq/Queue, CustomSchemaDS_OSB_PRDKS_DOMAIN, MobileApps_CIA_DS1_OSB_PRDKS_DOMAIN, eis/tibjmsDirect/Queue, eis/jbossmq/Queue, eis/Apps/Apps, MobileApps_AOS_MDS_OSB_PRDKS_DOMAIN, MobileApps_AOS_DRDS_OSB_PRDKS_DOMAIN, WSATGatewayRM_OSB_MS1_OSB_PRDKS_DOMAIN, eis/webspheremq/Queue, eis/AQ/aqSample, SBLPROD_OSB_PRDKS_DOMAIN, wlsbjmsrpDataSource_OSB_PRDKS_DOMAIN, eis/aqjms/Queue, CMSDS_OSB_PRDKS_DOMAIN, WLStore_OSB_PRDKS_DOMAIN_WseeFileStore_auto_1, FAP_OSB_PRDKS_DOMAIN, eis/sunmq/Queue, eis/pramati/Queue, FMWAPPDS_OSB_PRDKS_DOMAIN, weblogic.jdbc.jta.DataSource, GSDC_OSB_PRDKS_DOMAIN, eis/tibjms/Topic, eis/fioranomq/Topic, WLStore_OSB_PRDKS_DOMAIN_FileStore_MS1, PresidioOracleAppsDS_OSB_PRDKS_DOMAIN, GSDCDS_OSB_PRDKS_DOMAIN, eis/aqjms/Topic, CustOutDS_OSB_PRDKS_DOMAIN, OFMW/Logging/BAM, MobileAppsDS_OSB_PRDKS_DOMAIN, FIDDS_OSB_PRDKS_DOMAIN, WLStore_OSB_PRDKS_DOMAIN__WLS_OSB_MS1, HRMSDS_OSB_PRDKS_DOMAIN, WEDB_OSB_PRDKS_DOMAIN, OracleAppsDS_OSB_PRDKS_DOMAIN, eis/wls/Topic, eis/tibjms/Queue, eis/tibjmsDirect/Topic, IntrastatDS_OSB_PRDKS_DOMAIN, MobileApps_AOS_COSDS_OSB_PRDKS_DOMAIN, MobileApps_CIA_DS2_OSB_PRDKS_DOMAIN, EVEREST_WEDB_OSB_PRDKS_DOMAIN, WLStore_OSB_PRDKS_DOMAIN_FileStore_auto_1, Everest_OSB_PRDKS_DOMAIN},NonXAResources={})],CoordinatorURL=SOA_MS2+soaprd-vip-soa-ms2.cos.is.keysight.com:8002+SOA_PRDKS_DOMAIN+t3+): javax.transaction.SystemException: Lost connection to server while commit was in progress, ignoring because initiating server is not coordinating server. Remote Exception received=weblogic.rjvm.PeerGoneException: ; nested exception is:
            java.rmi.UnmarshalException: Incoming message header or abbreviation processing failed ; nested exception is:
            java.io.InvalidClassException: oracle.jdbc.xa.OracleXAException; local class incompatible: stream classdesc serialVersionUID = -2542408691177300269, local class serialVersionUID = -4551795881821760665
            at weblogic.transaction.internal.TransactionImpl.commit(TransactionImpl.java:376)
            at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:237)
            at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:224)
            at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:552)
            at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:423)
            at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:325)
            at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4659)
            at weblogic.jms.client.JMSSession.execute(JMSSession.java:4345)
            at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3821)
            at weblogic.jms.client.JMSSession.access$000(JMSSession.java:115)
            at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5170)
            at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
            at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
            at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

    Hi,
    Have you tried Cancelling the release before adding the version?
    Select the active version of the IDOC Segment and cancel its release first. Only then you will be able to add a version.
    Please let me know if it worked!
    Vijay

  • Doubt in fbl1n transaction

    hi i have a doubt....
    in fbl1n transaction, there are open items and cleared items.
    in it the cleared items  for certain document types such as invoice etc is not present in the open item table (bsik)
    however the cleared items for document types such as general  voucher its present in the open items table (bsik)
    is this possible as all cleared item entries shld b present in the open item table with an indicator set for cleared or not...
    plz exlain!

    Hi
    There are 2 tables(open and Closed Items)  in FI for Account Payables and Account Receivables and GL accounts
    1.Account payables: BSIK is Open Items and BSAK is Closed items
    2.Account Receivables; BSID and BSAD for OPEN and closed items
    3/GL accounts :  BSIS and BSAS  for Open and Closed Items
    <b>Reward points for useful Answers</b>
    Regards
    Anji

  • Follow up transaction in CRM

    Hi All,
    I want to create an Order in CRM with reference to the Standard Order (which is created in ECC and replicated from ECC to CRM).
    When I open the Transaction (which is created in ECC and replicated from ECC to CRM).
    in CRM and clikc on follow up I am not able to create the follow up transaction.
    The follow up transaction is in display mode.
    Can anybody give me inputs in this regard? where is wrong
    Will award the points for the helpful answer.
    Regards,
    -Rahul.

    Hi Shalini,
    The document is replicated from ECC to CRM without any errors.
    For this document I just want to create follow up transaction in CRM.(I dont want to change the document in CRM)
    The follow up transaction is in display mode. this is my problem.
    Hi Rekha:
    I have done following setting in CRM to create follow up transaction in CRM for the document which is replicated from ECC to CRM.
    1)     Defined the Copying Control for Transaction type
    2)     Defined Copying Control for Item categories
    3)     Defined Item category determination when copying
    Thanks in advance,
    Regards,
    -Rahul.

  • Follow-up Business Transactions

    Hi Experts,
    I have a problem with follow-up transactions. I created two transactions, a Quotation and a Standard Order.
    Then I created follow-up for these transactions in the copying control, ZAG --> ZTA. Now, when I create a new Quotation in the Web Client UI and I open the drop down list "create follow-up" I just can see many diferent activities like Contact, Task, incoming e-mail, etc. but no Business Transaction.
    How can I display the new created Business Transaction ZTA (Standard Order) in the drop-down list?
    Hope sb can help me.
    Thanks.
    Sebastian

    Hello Sudeep De,
    Thanks for your reply but thats not the problem.
    Also in the standard I have the same problem. The standard also defines follow-up transaction for AG (Quotation), AG --> TA (Standard Order) in the copying control. When I log in whith the role salespro and I create a new Quotation, save this Quotation and try to create a new Standtard order with the drop-down list "create follow-up", I just can see activites but no Business Transactions. Why can I just see activities (Task, ...) and no Business Transaktions? All these activities I can see are not defined in the copying control.
    Can you help me?.
    PS: I can find my Business Transaction in the Web Client UI. I just can not find the Transaction in the "create follow-up" List as a follow-up transaction
    Edited by: Sebastian Wilhelm on Oct 1, 2008 11:48 AM

  • Open follow up transaction type screen automatically after confirm account

    Hi Gurus,
    I have a transaction type Z010 for interaction record that is copied from standart 0010 transaction type.
    I define dependent transaction type SRVO that is service order as a follow up of Z010
    My requirement is to open automatically open service order screen after confirming account
    As agents must do everything vey quickly while they are on phone, it is needed urgently.
    Now they have to open Z010 interction record screen, have to press follow up button, click to clipboard and then can open the scrren of service order.
    How can we automatically open service order screen after confirming account??
    I will be very pleased if you will help...
    Thanks.

    Hi Denis, thanks for reply.
    I read it and see that interaction record is automatically created. How can it be made, is it a standard customizing?? Our interaction record is created automatically when follow up process-it is service order here- is created. First we confirm customer, then press to Interaction Record at the left hanside, then in this screen we press follow-up button, then click on Activity Clipboard, then service order screen is opened. I want to pass two steps, pressing Interaction Record and pressing follow up record, how can I do this??
    Exactly I have to define process type Business Activity for interaction record, I can't give Service Order process type directly to interaction record. Service Order type must be dependent to business activity, is it true?? If there is a way to directly giving service order type as an interaction record type, and making interaction record creation automatically after confirming, my problem is solved as very well.

  • Material Transaction Open Interface Error

    Hi,
    I'm getting following Error in Cost Manager after running the Transaction Open Interface,
    Interface work well to update the stocks, but it returns error Layer Cost Worker Concurrent.
    Error1
    Bills of Material: Version : 12.0.0
    Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.
    CMCLCW module: Layer Cost Worker
    Current system time is 10-OCT-2012 14:16:32
    debug_level = 0
    CM_EXTENDED_DEBUG = 2
    CSTPLCIN.COST_INV_TXN:CSTPLVCP.interorg (160): ORA-00001: unique constraint (INV.MTL_CST_TXN_COST_DETAILS_U1) violated
    Failing Transaction ID is 28227
    Start of log messages from FND_FILE
    Standard costing org : -1
    Interorg transfer send org: (consume layers) ...
    84:5
    28227:1
    Entering get_layers_consumed for transaction 28227 and a required quantity of 2 with a consumption mode of NORMAL
    Trying custom layers
    There are 0 custom layers
    General consumption
    Using SQL SELECT inv_layer_id,layer_quantity FROM cst_inv_layers WHERE layer_id = :i AND inv_layer_id <> :j AND NVL(transaction_source_id,-2) <> :k AND layer_quantity > 0 ORDER BY creation_date, inv_layer_id with 1,-1,-1
    End of log messages from FND_FILE
    No completion options were requested.
    Output is not being printed because:
    The print option has been disabled for this report.
    Deleting output file.
    Concurrent request completed
    Current system time is 10-OCT-2012 14:16:32
    Error2
    Bills of Material: Version : 12.0.0
    Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.
    CMCLCW module: Layer Cost Worker
    Current system time is 10-OCT-2012 14:16:32
    debug_level = 0
    CM_EXTENDED_DEBUG = 2
    CSTPLCIN.COST_INV_TXN:CSTPACDP.insert_account (10) ORA-01400: cannot insert NULL into ("INV"."MTL_TRANSACTION_ACCOUNTS"."BASE_TRANSACTION_VALUE")
    Failing Transaction ID is 28228
    Start of log messages from FND_FILE
    Standard costing org : -1
    ----------l_to_method---------
    =5
    Interorg transfer receiving org: (create layers) ...
    90:5
    28228:2
    i_txn_id 28228
    1 records updated in mclacd for 15005
    1 records copied from mclacd for 15005
    interorg_cost_txn(..)
    transaction_id:28228
    org_id:90
    i_txn_org_id:90
    i_txf_org_id:84
    i_txf_txn_id:28227
    i_exp_item:0
    i_fob_point:0
    l_snd_rcv:2
    l_from_org:84
    l_to_org:90
    Sending org distributions
    Receiving org distributions
    l_intransit:0
    Calling Inventory acct
    In Inventory_accounts
    In insert accounts
    l_ussgl_tc :
    Payable amount(l_value): acct: 414240
    In insert accounts
    l_ussgl_tc :
    DS - others Exception, sqlcode = -1400
    End of log messages from FND_FILE
    No completion options were requested.
    Output is not being printed because:
    The print option has been disabled for this report.
    Deleting output file.
    Concurrent request completed
    Current system time is 10-OCT-2012 14:16:32
    My Coding
    insert into mtl_transactions_interface
    (transaction_type_id, --------------1
    transaction_uom, --------------2
    transaction_date, --------------3
    organization_id, --------------4
    transaction_quantity, --------------5
    last_update_date, --------------6
    last_updated_by, --------------7
    creation_date, --------------8
    created_by, --------------9
    transaction_mode, --------------10
    process_flag, --------------11
    source_header_id, --------------12
    source_line_id, --------------13
    source_code, --------------14
    transaction_header_id, --------------15
    inventory_item_id, --------------16
    transaction_interface_id, --------------17
    subinventory_code, --------------18
    distribution_account_id, --------------19
    transaction_cost, --------------20
    transaction_reference, --------------21
    transfer_organization, --------------22
    transfer_subinventory, --------------23
    -- transfer_cost, --------------24
    primary_quantity, --------------25
    lock_flag,
    transaction_action_id,
    transaction_source_type_id,
    dst_segment1,
    dst_segment2,
    dst_segment3,
    dst_segment4,
    dst_segment5,
    dst_segment6)
    values
    (v_trx_type_id, --------------1 ------transaction type id
    i.uom_code, --------------2 ------transaction_UoM
    sysdate, i.creation_date, ------------3 ------trasnsaction date
    i.from_organization_id, --------------4 ------org id
    nvl(i.quantity_delivered, i.quantity), --------------5 ------quantity
    sysdate, --------------6 ------Last update date
    -1, --------------7 ------last updated by
    sysdate, --------------8 ------creation date
    -1, --------------9 ------creation by
    3, --------------10 ------transactio mode
    1, --------------11 ------process flag
    1, --------------12 ------source_header_id
    1, --------------13 ------source_line_id
    i.mrn_trx_number, --'MRN Interface', --------------14 ------source code
    '999999', --------------15 ------transaction header id
    v_item_id, --------------16 ------inventory item id
    xx_mrn_mtl_trx_int_seq.nextval, --------------17 ------transaction_interface_id
    i.from_subinventory_code, --------------18 ------sub inventory
    v_code_id, --------------19 ------code compbination
    v_item_cost, --------------20 ------cost
    'MRN Interface', --------------21 ------reference
    i.organization_id, --------------22
    i.to_subinventory_code, --------------23
    -- (nvl(i.quantity_delivered, i.quantity) * v_item_cost) --------------24
    nvl(i.quantity_delivered, i.quantity),
    2,
    v_trx_action_id,
    v_trx_source_type_id,
                   '01',
                   '00',
                   '000',
                   '141013',
                   '000000',
                   '00000');
    Thanks

    Can you get the following for the errored transaction?
    SELECT   transaction_id txnid, transfer_transaction_id txfrtxnid
           , organization_id orgid, transfer_organization_id txfrorgid, subinventory_code subinv
           , transfer_subinventory txfrsubinv, cost_group_id cgid
           , transfer_cost_group_id txfrcgid       , prior_costed_quantity
           , transfer_prior_costed_quantity       , rcv_transaction_id rcvtxnid
           , transaction_action_id txnactid       , transaction_source_type_id txnsrctypid
           , transaction_type_id txntypid       , costed_flag cstdflg
           , transaction_group_id       , inventory_item_id invitmid
           , transaction_source_id wip_entity_id       , transaction_cost txncst
           , shipment_number shipnum       , new_cost       , prior_cost
           , actual_cost       , project_id       , transaction_uom txnuom
           , transaction_quantity txnqty       , primary_quantity priqty       , prior_costed_quantity priorqty
           , currency_code altcurr       , currency_conversion_rate currconvrt       , currency_conversion_date currconvdt
           , TO_CHAR (mmt.creation_date, 'dd-mm-yyyy hh24:mi:ss') creation_date
           , TO_CHAR (mmt.last_update_date, 'dd-mm-yyyy hh24:mi:ss')last_upd_date
           , ERROR_CODE errcode
           , error_explanation errexpl
        FROM mtl_material_transactions mmt
       WHERE transaction_id IN (&Trx_Id)   -- Error transaction_id
    ORDER BY transaction_id DESC

Maybe you are looking for

  • Training & Event Management - ERROR while creating a Business Event

    Dear All, My issue is - i have created my Business event groups n event types. when i right click on BET (or PV10) and create With/WIthout resources i am unable to save. i.e. i am unable to create a Business Event. when i click on save the screen doe

  • Within Pro 9, how do I remove/delete default security settings?

    All, As a learning excercise, I recently password protected a document so that PRINT was disabled. However everytime I render a PDF, this security policy is applied by default requiring me to go the Security tab under Properties and select "No Securi

  • Fixed length retrieval using JDBC

    Hi All, I am wondering if there is an api where I can manipulate the result of a preparedstatement query. I am using a standard JDBC Connection to query against an oracle database. The particular column I retrieve is a decimal and can vary in length

  • Oltp insert performance

    Hi Experts , 1. could someone guide me on understanding what are things that impact insert performance in an oltp application with ~25 concurrent sessions doing 20 inserts/session  into  table X. ? (env- oracle 11g ,3 node RAC , ASSM tablespace , tab

  • OWB 10g R2 with Advanced Queues

    All, We are currently using 9.2.0.2.8 and make extensive use of Advance Queues in many of our mappings (we've put a lot of effort in to get this to work "real time"). We are now looking to upgrade from 9.2.0.2.8 to 10.2.0.2 - we've upgraded the mappi