Cannot make use of concurrency-strategy (more readable)

          Hi!
          First goes the abstract: despite all other parameters, the only setting that seems
          to make a difference for transaction handling is <isolation-level>. What I really
          want to make use of, is <concurrency-strategy>. Ultimately I want to make use of
          Optimistic concurrency strategy of WL70, but looks like that even Exclusive strategy
          does not work in my case.
          Here is my description of my test app:
          1. I have TxDataSource defined in Weblogic Console. Standard Datasource seems not
          to support transactions at all.
          2. I have two instances of the Client -- C1 and C2, Session Bean -- S, and Entity
          Bean -- E.
          3. I start C1, it locates S and calls business method with Required attribute on
          it.
          4. Business method on S finds E using E.find(PK). All methods on E has attribute
          Mandatory.
          5. Business method on S goes to sleep for 15 seconds: Thread.sleep(15000). I know
          that in real-world applications one cannot use threads in EJB, but I have to test
          concurrent access to the same data from different clients and this was the easiest
          way to do what I needed. Anyway, it is just a test.
          6. While S is sleeping in business method, I start C2. It locates S (creates new
          instance?), calls business method on it, which in turn, locates E (new instance of
          E?), calls find() on it and goes to sleep for the same 15 seconds. Note, that for
          <concurrency-strategy>Exclusive</concurrency-strategy> I expected second client to
          be unable to find() Entity bean, because it should be locked by the first client.
          Quite opposite, it can be located by S. This is weird for me.
          7. Business method on S for the first client awakes and calls business method on
          E (with Mandatory attribute). It changes data and commits. Fine.
          8. Business method on S for the second client awakes and calls business method on
          E to change data. Then it exits, and - surprise! - commits data! Even in Exclusive
          mode. The same thing in Optimistic mode with <verify-columns> parameter.
          <isolation-level> set to TRANSACTION_READ_COMMITTED, server is Sybase Adaptive Server
          v.12.
          The record in database is not locked on find(), because I can UPDATE record using
          Sybase SQL Advantage client.
          If I change <isolation-level> to TRANSACTION_REPEATABLE_READ or TRANSACTION_SERIALIZABLE,
          then record is locked at find(). But this does not have anyhting with optimistic
          locking! I want record to remain unlocked and to be checked for possible update by
          other client during commit! Also, for Exclusive mode I suppose that I cannot even
          find() entity bean for the same PK, that was already found by other client. What
          am I doing wrong?
          Additional info is attached.
          [qqq.txt]
          

Hi Mike,
          as I already posted I resolved the problem. Thanks anyway. My biggest
          mistake was that I was evaluating WL7 features, and to make my like easier,
          I was changing settings in the deployment descriptors within JAR file! Heh,
          because I did not run EJBC, I had stale classes in JAR file (those stubs and
          other helper classes that WL generates), that is why the whole thing did not
          work. Those stubs are generated by WLS based on setting in descriptors, that
          I personally find wrong, because it turns the whole "write code -- change
          descriptor while deploing" idea upside down. Anyway, t was my mistake.
          It works now with "Read" and "Modified" concurrency methods, but does not
          work with Timestamp field. Frankly, I did not try hard to make it work with
          Timestamp.
          So, when I understood the fact that <concurrency-strategy> works on bean
          level, and <isolation-level> works on database level, everything became
          clear.
          WBR,
          Michael Jouravlev.
          "mike" <[email protected]> wrote in message
          news:[email protected]...
          >
          > Hi.
          > I'm just done struggling with similar case. Difference is I use Oracle
          (have not
          > used SB for a while...) and 6.1. Both minor, IMHO. Also please
          <imho></imho> each
          > statement below.
          >
          > "Michael Jouravlev" <[email protected]> wrote:
          > >
          > >
          > >
          > >Hi!
          > >
          > >First goes the abstract: despite all other parameters, the only setting
          > >that seems
          > >to make a difference for transaction handling is <isolation-level>. What
          > >I really
          > >want to make use of, is <concurrency-strategy>. Ultimately I want to make
          > >use of
          > >Optimistic concurrency strategy of WL70, but looks like that even
          Exclusive
          > >strategy
          > >does not work in my case.
          >
          > Strategy must be supported by underlying DB and communicated to it via
          driver. If
          > it's either not supported, or driver can't tell DB what you want...
          >
          > >
          > >Here is my description of my test app:
          > >1. I have TxDataSource defined in Weblogic Console. Standard Datasource
          > >seems not
          > >to support transactions at all.
          >
          > That's for sure.
          >
          > >2. I have two instances of the Client -- C1 and C2, Session Bean -- S,
          and
          > >Entity
          > >Bean -- E.
          > >3. I start C1, it locates S and calls business method with Required
          attribute
          > >on
          > >it.
          > >4. Business method on S finds E using E.find(PK). All methods on E has
          attribute
          > >Mandatory.
          > >5. Business method on S goes to sleep for 15 seconds:
          Thread.sleep(15000).
          > >I know
          > >that in real-world applications one cannot use threads in EJB, but I have
          > >to test
          > >concurrent access to the same data from different clients and this was
          the
          > >easiest
          > >way to do what I needed. Anyway, it is just a test.
          > >6. While S is sleeping in business method, I start C2. It locates S
          (creates
          > >new
          > >instance?), calls business method on it, which in turn, locates E (new
          instance
          > >of
          > >E?), calls find() on it and goes to sleep for the same 15 seconds. Note,
          > >that for
          > ><concurrency-strategy>Exclusive</concurrency-strategy> I expected second
          > >client to
          > >be unable to find() Entity bean, because it should be locked by the first
          > >client.
          > >Quite opposite, it can be located by S. This is weird for me.
          >
          > It is not. It looks like you do have optimistic locking (Oracle uses it by
          default,
          > I do not know about Sybase). In such case any number of clients can try
          to modify
          > the data, they'll be happy ... till they try to commit.
          >
          > >7. Business method on S for the first client awakes and calls business
          method
          > >on
          > >E (with Mandatory attribute). It changes data and commits. Fine.
          > >8. Business method on S for the second client awakes and calls business
          > >method on
          > >E to change data. Then it exits, and - surprise! - commits data! Even in
          >
          > Yes, that sounds wrong at first. Though ... See: you can log into a DB and
          execute
          > update without prior locking. That is what happens. You edit stale data.
          >
          > To avoid this people use "version numbers", or whatever you want to call
          it. This
          > is a number, which has to be changed with each update and verified against
          while
          > modifying data in DB.
          >
          > >Exclusive
          > >mode. The same thing in Optimistic mode with <verify-columns> parameter.
          > >
          > ><isolation-level> set to TRANSACTION_READ_COMMITTED, server is Sybase
          Adaptive
          > >Server
          > >v.12.
          > >
          > >The record in database is not locked on find(), because I can UPDATE
          record
          > >using
          > >Sybase SQL Advantage client.
          > >
          > >If I change <isolation-level> to TRANSACTION_REPEATABLE_READ or
          TRANSACTION_SERIALIZABLE,
          > >then record is locked at find(). But this does not have anyhting with
          optimistic
          > >locking! I want record to remain unlocked and to be checked for possible
          >
          > That does. By changing locking scheme you switch from optimistic to
          pessimistic locking.
          >
          > >update by
          > >other client during commit! Also, for Exclusive mode I suppose that I
          cannot
          > >even
          > >find() entity bean for the same PK, that was already found by other
          client.
          > >What
          > >am I doing wrong?
          > >
          > >Additional info is attached.
          >
          

Similar Messages

  • Cannot make use of concurrency-strategy

              Hi!
              First goes the abstract: despite all other parameters, the only setting that seems
              to make a difference for transaction handling is <isolation-level>. What I really
              want to make use of, is <concurrency-strategy>. Ultimately I want to make use of
              Optimistic concurrency strategy of WL70, but looks like that even Exclusive strategy
              does not work in my case.
              Here is my description of my test app:
              1. I have TxDataSource defined in Weblogic Console. Standard Datasource seems not
              to support transactions at all.
              2. I have two instances of the Client -- C1 and C2, Session Bean -- S, and Entity
              Bean -- E.
              3. I start C1, it locates S and calls business method with Required attribute on
              it.
              4. Business method on S finds E using E.find(PK). All methods on E has attribute
              Mandatory.
              5. Business method on S goes to sleep for 15 seconds: Thread.sleep(15000). I know
              that in real-world applications one cannot use threads in EJB, but I have to test
              concurrent access to the same data from different clients and this was the easiest
              way to do what I needed. Anyway, it is just a test.
              6. While S is sleeping in business method, I start C2. It locates S (creates new
              instance?), calls business method on it, which in turn, locates E (new instance of
              E?), calls find() on it and goes to sleep for the same 15 seconds. Note, that for
              <concurrency-strategy>Exclusive</concurrency-strategy> I expected second client to
              be unable to find() Entity bean, because it should be locked by the first client.
              Quite opposite, it can be located by S. This is weird for me.
              7. Business method on S for the first client awakes and calls business method on
              E (with Mandatory attribute). It changes data and commits. Fine.
              8. Business method on S for the second client awakes and calls business method on
              E to change data. Then it exits, and - surprise! - commits data! Even in Exclusive
              mode. The same thing in Optimistic mode with <verify-columns> parameter.
              <isolation-level> set to TRANSACTION_READ_COMMITTED, server is Sybase Adaptive Server
              v.12.
              The record in database is not locked on find(), because I can UPDATE record using
              Sybase SQL Advantage client.
              If I change <isolation-level> to TRANSACTION_REPEATABLE_READ or TRANSACTION_SERIALIZABLE,
              then record is locked at find(). But this does not have anyhting with optimistic
              locking! I want record to remain unlocked and to be checked for possible update by
              other client during commit! Also, for Exclusive mode I suppose that I cannot even
              find() entity bean for the same PK, that was already found by other client. What
              am I doing wrong?
              Here is some info:
              1. JDBC Tx Data Source:
              Name: SybaseDataSource
              JNDI Name: sybaseDataSource
              Pool Name: sybasePool
              Emulate Two-Phase Commit for non-XA Driver (No)
              Row Prefetch Enabled (No)
              Row Prefetch Size: 48
              Stream Chunk Size: 256 bytes
              2. ejb-jar.xml:
              <?xml version="1.0"?>
              <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN'
              'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
              <ejb-jar>
              <enterprise-beans>
              <entity>
              <ejb-name>OptTestDataEJB</ejb-name>
              <local-home>com.xxx.yyy.ejb.entity.OptTestDataHome</local-home>
              <local>com.xxx.yyy.ejb.entity.OptTestData</local>
              <ejb-class>com.xxx.yyy.ejb.entity.OptTestDataBean</ejb-class>
              <persistence-type>Container</persistence-type>
              <prim-key-class>java.lang.Integer</prim-key-class>
              <reentrant>False</reentrant>
              <cmp-version>2.x</cmp-version>
              <abstract-schema-name>OptTestDataEJB</abstract-schema-name>
              <cmp-field>
              <field-name>id</field-name>
              </cmp-field>
              <cmp-field>
              <field-name>numData</field-name>
              </cmp-field>
              <cmp-field>
              <field-name>strData</field-name>
              </cmp-field>
              <primkey-field>id</primkey-field>
              <query>
              <query-method>
              <method-name>findByDrawId</method-name>
              <method-params>
              <method-param>int</method-param>
              </method-params>
              </query-method>
              <ejb-ql>
              <![CDATA[SELECT OBJECT(o) FROM OptTestDataEJB AS o WHERE o.id = ?1]]>
              </ejb-ql>
              </query>
              </entity>
              <session>
              <ejb-name>OptTestMgrEJB</ejb-name>
              <home>com.xxx.yyy.ejb.session.OptTestMgrHome</home>
              <remote>com.xxx.yyy.ejb.session.OptTestMgr</remote>
              <ejb-class>com.xxx.yyy.ejb.session.OptTestMgrBean</ejb-class>
              <session-type>Stateless</session-type>
              <transaction-type>Container</transaction-type>
              </session>
              </enterprise-beans>
              <assembly-descriptor>
              <container-transaction>
              <method>
              <ejb-name>OptTestMgrEJB</ejb-name>
              <method-name>*</method-name>
              </method>
              <trans-attribute>Required</trans-attribute>
              </container-transaction>
              <container-transaction>
              <method>
              <ejb-name>OptTestDataEJB</ejb-name>
              <method-name>*</method-name>
              </method>
              <trans-attribute>Mandatory</trans-attribute>
              </container-transaction>
              </assembly-descriptor>
              </ejb-jar>
              3. weblogic-cmp-rdbms-jar.xml:
              <?xml version="1.0"?>
              <!DOCTYPE weblogic-rdbms-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 7.0.0 EJB
              RDBMS Persistence//EN' 'http://www.bea.com/servers/wls700/dtd/weblogic-rdbms20-persistence-700.dtd'>
              <weblogic-rdbms-jar>
              <weblogic-rdbms-bean>
              <ejb-name>OptTestDataEJB</ejb-name>
              <data-source-name>sybaseDataSource</data-source-name>
                   <table-map>
              <table-name>optTest</table-name>
                   <field-map>
              <cmp-field>id</cmp-field>
                   <dbms-column>ID</dbms-column>
              </field-map>
                   <field-map>
              <cmp-field>numData</cmp-field>
                   <dbms-column>NUM_DATA</dbms-column>
              </field-map>
                   <field-map>
              <cmp-field>strData</cmp-field>
                   <dbms-column>STR_DATA</dbms-column>
              </field-map>
              <verify-columns>Timestamp</verify-columns>
              <optimistic-column>CONTROL_DATA</optimistic-column>
                   <!-- The same with <verify-columns> set to Read or Modified -->
                   </table-map>
              </weblogic-rdbms-bean>
              </weblogic-rdbms-jar>
              3. weblogic-ejb-jar.xml:
              <?xml version="1.0"?>
              <!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 7.0.0 EJB//EN"
              "http://www.bea.com/servers/wls700/dtd/weblogic-ejb-jar.dtd">
              <weblogic-ejb-jar>
              <weblogic-enterprise-bean>
              <ejb-name>OptTestDataEJB</ejb-name>
              <entity-descriptor>
              <entity-cache>
              <read-timeout-seconds>3</read-timeout-seconds>
              <concurrency-strategy>Optimistic</concurrency-strategy>
              </entity-cache>
              <persistence>
              <persistence-use>
              <type-identifier>WebLogic_CMP_RDBMS</type-identifier>
              <type-version>7.0</type-version>
              <type-storage>META-INF/weblogic-cmp-rdbms-jar.xml</type-storage>
              </persistence-use>
              </persistence>
              </entity-descriptor>
              <local-jndi-name>abs.OptTestData</local-jndi-name>
              </weblogic-enterprise-bean>
              <weblogic-enterprise-bean>
              <ejb-name>OptTestMgrEJB</ejb-name>
              <stateless-session-descriptor>
              </stateless-session-descriptor>
              <jndi-name>abs.OptTestMgr</jndi-name>
              </weblogic-enterprise-bean>
              <transaction-isolation>
              <isolation-level>TRANSACTION_READ_COMMITTED</isolation-level>
              <!-- <isolation-level>TRANSACTION_SERIALIZABLE</isolation-level> -->
              <!-- <isolation-level>TRANSACTION_REPEATABLE_READ</isolation-level> -->
              <method>
              <ejb-name>OptTestDataEJB</ejb-name>
              <method-intf>Local</method-intf>
              <method-name>*</method-name>
              </method>
              </transaction-isolation>
              <transaction-isolation>
              <isolation-level>TRANSACTION_READ_COMMITTED</isolation-level>
              <!-- <isolation-level>TRANSACTION_SERIALIZABLE</isolation-level> -->
              <!-- <isolation-level>TRANSACTION_REPEATABLE_READ</isolation-level> -->
              <method>
              <ejb-name>OptTestMgrEJB</ejb-name>
              <method-intf>Remote</method-intf>
              <method-name>*</method-name>
              </method>
              </transaction-isolation>
              </weblogic-ejb-jar>
              Please, advise me what I have to do with this stuff.
              

    Can you kindly elaborate the actual issue and what was wrong in it?

  • How can I make the Lion iCal display more readable?

    How can I make the Lion iCal display more readable?

    I'm wondering the same thing.
    Under Lion, my calendars' color coding is next to useless because they're suddenly so muted.
    Previously I could easily pick out which events belonged to which calendar without effort. Now, all the colors are so light as to be nearly indisinguishable; I must toggle calendars off and on to highlight a calendar's events.

  • How to make address book larger and more readable?

    extra large isn't big enough. is there a way to make the address book interface larger and more readable?

    This won't cover the entire interface (although there is a somewhat experimental way to do that as well), but try quitting "Address Book.app" if it is running, opening "/Applications" > "Utilities" > "Terminal.app" and entering this command:<pre>defaults write com.apple.AddressBook ABTextSizeIncrement -int 10</pre>Then relaunch "Address Book.app". Substitute whatever integer value you prefer in place of "10" (the default sizes are 1, 2 and 3 respectively for "regular", "large" and "extra large").

  • Cannot make or recieve calls and more. :(

    Hi,
    Constantly my iphone 4 (5.0.1) has no service and the blue bubble pops up saying needs to be restored cannot make or recieve calls and a restore wont fix it.Can i replace my iphone? its a year and a half old .I bought it from vodafone.
    Can i go about fixing it myself? i dont really know whats causing the problem.
    One more thing,sometimes wi-fi and bluetooth is greyed out when i turn the phone on,then sometimes there ok.What could cause this?
    Plus i cant see my baseband version when the above happens.
    I live in ireland so no genuis bars around here.
    Please help me guys.
    Thanks.

    Have you restored your phone as a new device?  Restore your phone as NEW without adding ANY apps, music, or anything else.  Now try your phone.  If it works, then you probably had corrupt software on it.  Go ahead and put your apps and media back on.
    If after you restore as NEW and BEFORE you add anything onto your phone it's still acting up, then you have a hardware issue.  You'll have to pay the out of warranty exchange fee to have your phone replaced. 

  • Boot Cam Assistant Cannot be used... +more troubles...

    i may have done something wrong but let me first explain and your opinion would then be very welcome...
    got my SL update this friday so i install it in my macmini (early 09), installation go well. It kep my boot camp partition unchanged and working relatively well. untill i install bootcamp for windows after booting up on XP.
    I restart on OS X and it hangs for nearly 15min. the slowest boot up i've experienced so far.
    Once i'm able to login to my OS account I no longer see the bootcamp partition on "start up Disk"'s system preferences. and when i attempt to run Boot Camp assistant i get this message ....
    Boot Cam Assistant Cannot be used
    You must update your computer's Boot ROM
    firmware before using this setup assistant.
    another message appears when i go to "start up disk" in system preference. Although i only see my OS X partition, when i click back on "show all" this message appears:
    You can't change the startup disk to the selected disk
    The bless tool was unable to set the current boot disk
    What went wrong and what can be done to correct this very annoying ordeal.
    i'm able to boot on xp by pressing "option" whilst restarting my mac. however, bootcamp on windows is able to see OS X partition.
    Your help is appreciated.
    thanks

    nobody has anything to say about my problem???
    should i have to re-install everything ? and can a SL update DVD allow an installation from scratch ?

  • I cannot make a group call any more

    As of a couple weeks ago, when I select someone to call, the video icon is fine and I can call them.  When I add a second person (same people I have been calling before), the icon is greyed out and I cannot initiate a call.  Both of these people I can talk to individually on skype but if I try to call them together, It won't let me.
    What changed?

    no, i didn;t try another location. right now, i can send text messages but phone calls. the signal is very weak and sometimes no service. i cannot receive any phone calls but i can receive voice message. when i make calls, just no responding, the screen still showing:  calling mobile.  that's it. this situation happened after hurricane sandy.

  • Can't SSAS engines make use of more than one aggregation to answer a query?!

    I have a very simple cube (just for testing and training) . This cube contains two dimensions: [Dim Soccer Player] contains one attribute hierarchy [player name], the other dimension
    is [Dim Match Acts] contains also one attribute [Acts] which has values like fouls, goals, saves, tackles… etc. And of course a Fact that contains one measure of Just Count ... that simple ... so this cube can
    answers a question like how many goals scored by "Messi", for example ... a very simple trivial cube.
    I'm testing aggregations and their effect. so first I've designed one aggregation (Aggregation 0) on the granularity level of [Player name], then
    I run a query to get the count of ALL the[Acts] done by each [Player name] ... I've checked the SQL Profiler and I found that the aggregation was used.
    Then I cleared the cache, and I run another query, but this time to get just the number of Fouls committed by each [Player name], I checked the Profiler but the Aggregation 0 was NOT used.
    I went back to the aggregations design tab in BIDS, and I added another new aggregation (Aggregation 1) on the level of [Acts], so now I have two aggregation one on the granularity level of
    [Player name] and the second on the level of the [Acts].... I cleared the cache again and rerun the last query. NONE of the aggregation was used!
    In the third test I deleted Aggregation 1 and added [Acts] to Aggregation 0. so Aggregation 0 now on both [Player name] AND [Acts]... cleared the cache and rerun the last query. Aggregation
    0 appeared again.
    I just want to make sure (and if possible know why) the SSAS engine can't make use of and combine more than one aggregation to serve a query (point number 2), and that to design an aggregation
    that will serve a query which contains attributes from different dimensions, I have to add ALL the attributes in that query in that one aggregation, like point 3 ... is this true?!

    I think you are on the right track. You need to include all the attributes used in one query in the same aggregation (like #3) for it to be used. Example #2 works as I would expect. Queries above the grain of the agg (query by player name and an agg by
    player/act can be used) can be used. Queries below grain of the agg (example #2) can't use the agg.
    http://artisconsulting.com/Blogs/GregGalloway

  • How to make use of the spare physical memory under buffered I/O of Essbase

    We encountered an issue of the physical memory allocation of the server running Essbase with buffered I/O mode. We have implemented some cache setting in Essbase but still found that the disk I/O is quite high. Also we observed that Windows 2003 server cannot make use of the spare physical memory available as the system cache for database files of Essbase.
    As allocating more memory as Essbase cache might not help, we would like to know other than changing to direct I/O mode, any other options can improve the disk I/O performance?
    Thanks!

    Sandeep Reddy wrote:
    Hi Hyperion_User,
    1. Disk IO performance,It mighe depend on quite a few things , one of the aspects might be your storage system. It can depend on the disk configuration too ( i.e if your disk is SAN or NAS, then it depends on the configuration like Raid ..etc).
    2. It depends on the HBA ( host bus adapter).
    3. Let me try to explain with diagram.
    http://www.c-sharpcorner.com/uploadfile/freebookarticles/apress/2008dec16010208am/DataStorageDesign/Images/159059214X-1404.1.gif
    4. It might depend on the HBA and even on the switch speed.
    5. Buffered IO is a very generic setting,which most of them use( that should not be an issue).
    6. Even if you have 30 to 40 GB free memory, every application in essbase has a limitation to it maximum usage ( 2 GB on windows ). Refer to DBAG for more information on this .
    Sandeep Reddy Enti
    HCC
    http://hyperionconsultancy.com/
    Thanks for your detailed advice. I just wonder if more physical memory can help to improve the disk I/O being used for concurrent read/write access. We are using Windows 2003 Enterprise Edition and not sure whether some spare physical memory can be used for this purpose.
    Thanks again!

  • Make more readable screen text size in palettes on high-resolution screens?

    Does anybody know of a way to make the text in palettes in Creative Suite programs more readable?
    From my experimenting, the size never changes after messing with Windows "DPI setting" in the Control Panel>Display dialog (96 dpi, 120 dpi, custom); and one of my users needs to have the text be more legible if we're going to upgrade to higher-resolution, higher quality screens.
    Buying certain magnification programs is apparently out of the question, since I made the stupid mistake of buying 64-bit computers (although I haven't researched all the magnification programs yet). Even so, they seem likely to be rather clunky to use, only magnifying where your mouse points, rather than certain sections of the screen only (like the palettes in InDesign or Photoshop), or programmatically enlarging text that Windows won't touch.
    Do newer versions of CS adjust per Windows Display instructions? (We're on CS 1.) Or do they always remain at the same 72-dpi-looking size, per Mac? (That's my current theory about how it's working.)
    I could always downgrade the monitor's displayed resolution, but for some reason that wasn't desirable...
    Sorry, I try to keep it short, but there's always so many possibilities and information to pass along. Thank you in advance.

    I think the Photoshop UI text adjustment must be in newer versions.
    I'm not seeing it (I could be missing it...)
    I'll fill out the form you mention. Good idea.
    And thanks for the responses.

  • How to establish code standards to make the abap code more readability

    Every programmer have their habit to code, but this lead a problem , it is difficult to read other people's code, especially the complex logic.
    So how to establish code standards to make the abap code more readability?
    I came up with this:
    1.Unify the naming rule.
    2.Reduce the nest of 'if' statement. (better in less than 4 if statement in one block )
    3.Use more Perform to replace the big code block.
    Is there any other standards to make our abap code more readability ?  (if we establish the standards, in sap is there any tool to help us to follow the rule we set ?)

    There are a number of things you could do. Some of which are:
    I would recommend creating your own in-house document on Coding standards, some of which you can control with the code inspector.
    It is also possible to set up the transport request in such a way that objects that do not pass the SCI test are not allowed to be released.
    I would also assign a senior developer to act as quality control for all developments. You can have a rotation scenario where this work can be divided by the number of senior developers you have.

  • Cannot make calls or send texts using new carrier, was able to do both with previous carrier

    iphone 4 bought new/privately JAIL BROKEN/SIM FREE, used with uk carrier no problem, but now using a thailand sim (TRUE) and cannot make calls or send texts - but can recieve both, TRUE checked & found SIM OK and confirmed it worked normally on another iphone ... software is up to date and I RESET NETWORK SETTINGS still same - HELP !

    Sorry, there is no support for jailbroken iPhones here...more than likely the cause of your problem. You'll have to go elsewhere for help.
    Good luck.

  • Sessionbeans cannot be used concurrently error? How to solve in EJB1.1?

    When using EJB1.1 with WLS 6.0, is there a way to make the weblogic block a
    concurrent call till the previous call is over? instead of throwing the
    sessionbeans cannot be used concurrently error?
    I found the <allow-concurrent-calls> xml descriptor for EJB2.0 but was
    wondering how to do this with EJB 1.1
    Thanks
    Siva

    i understand and i don't understand.
    lol
    thats possible for someone who is using xemacs but someone who is using Eclipse or JCreator how do i do that?
    if u don't want to answer that question could u put an assertion in this code, for example : asser -> if the num < = 0 !
    here is the code:
    import java.io.*;
    public class Capicua {
         public static void main (String[] args) throws Exception {
              int digit, num;
              int inverted = 0;
              int x;     
                   BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                   System.out.print(" Insert number: ");
                   num=Integer.parseInt(br.readLine().trim());
                   Assertion.assert(num <= 0, "Number can't be shorter or equals to zero!"); <--- how do i put an assert here? ( with the "do - while" its easy, but and with the asserts?
                   x=num;
                   while(num > 0) {
                   digit = num % 10;
                   num = num /10;
                   inverted = inverted * 10 + digit;
                   System.out.println("inverted = " + inverted);
                        if(inverted == x) {
                             System.out.println("Capicua");
                        }else{
                             System.out.println("not a capicau");
    }

  • I am extremely upset. I purchased my iPad in SA and I am traveling in Greece. When I want to make use of the free apps, I get a message that the app is not available in the SA store. What is the point of having an iPad if you cannot use it worldwide?

    I am extremely upset. I purchased my iPad in SA and now I am in Greece. I cannot download free apps as I get a message that the apps are not available in the SA store and only in US stores. When I change to the US store the same thing happens. What is the point of having an iPad if I cannot use it worldwide??? I feel that I wasted my money purchasing it as I specifically purchased it to use when I travel. How can I get access to all the available apps and why are they restricted.

    You can use your iPad worldwide. However, each AppleID is tied to
    a specific country's store. To use the AppStore in any country, you
    must be in that country and have a credit/debit card issued by a financial
    institution in that country with a verified billing address in that country.
    It is the developer's choice which AppStores he makes his app available
    from, and some countries prohibit certain apps.
    To make a purchase from the US store (including downloading a free app
    available in the US store), you must be in the US and have card issued
    in the US with verified billing address in the US.
    You can use your purchases from the SA store worldwide, but you
    cannot make purchases in other than the SA store unless you meet
    the aforesaid conditions.

  • I'm trying to make a cd from my itunes. I get error message "cannot be used because it is not recognized.

    I'm trying to make a cd from my itunes. I get error message "cannot be used because it is not recognized.

    I just figured it out. All I had to do was close out of iTunes then restart.

Maybe you are looking for

  • Subcontracting  charges and process

    Hi, We are implementing the Sub Contracting process, we have sonme restriction from our finance department that tehy do not wnat to include the subcontracter service  charges  in the total product cost, means payment to the subcontracter should be pa

  • Error while running the SSIS package from SQL DB to excel file - export option

    hi all,  I have 4.6 million records  in my sql db  and i want to copy this into a  excel file. for this i went to the db    and rt click and export to command and started the ssis package running.  but after few minutes, it throws me  an error that "

  • Two step import, downsizing image file sizes and/or keeping copies?

    hi all, leonie was kind enough on another thread to suggest a two step import from the iphone in order to make sure that there is no accidental deletion or data loss. my understanding (i'm repeating it here myself in case i am misunderstanding) is th

  • Datasource not visible in rsa1

    Hello, my datasources are not visible in rsa1 -> source systems. I tried replicate, check connection, repair connection, run report RSAOS_METADATA_UPLOAD, upload metadata, etc. Now I have no clue. In roosource datasourse is active (in sourcesystem).

  • Computer Crashes after Chrome Freezes

    Hey There, Macbook Aluminium Unibody 2008, running latest mavericks and SSD in place of disk drive. Chrome crashes to 'Aw, Snap' page, randomly and doesnt occur every time or on the same page. May go a week without crashing or do it multiple times pe