Weblogic5.1, Transaction involving SQL Svr and AS400/DB2

          Hi, after reading quite a few posts regarding this issue I believe to demarcate a
          transaction involving SQL Server and AS400/DB2 is not impossible. But we have to
          handle the rollback and other stuff on our own. Am I correct? Is there any hack around
          this?
          I've tried to use an EJB(ejbY) that will insert a record in AS400/DB2 and subsequently
          in ejbY, I invoke another EJB(ejbX) that reside in another WL5.1 to insert a record
          in SQL Server. Of course this is demarcated with UserTransaction. Technically is
          this possible? This is because I've encountered some exceptions with this hack and
          would like to seek some advise.
          Thanks.
          [apps.zip]
          

Hi,
  If you have access to My Oracle Support then have a look at this note -
How To Migrate Non-Oracle Databases For Which a SQL*Developer or Migration Workbench Option Is Not Available (Doc ID 393760.1)
Regards,
Mike

Similar Messages

  • Transactions involving multiple caches and a database

    Hi all,
    I'm curious if the following is possible with the transaction support in Coherence.
    I have the need to write data to two caches and a database from within my Tomcat container, and the whole operation must be atomic.
    Example:
    Write to database (this is NOT via a CacheStore)
    Write to cache 1 (uses write-through to database)
    Write to cache 2 (uses write-through to database)
    If any operation fails, the whole transaction needs to rollback. This feels like an XA transaction, but it looks like it won't work like I expect because the cache must be the last resource, but I have two caches. The ordering of operations is not important.
    Thanks,
    Rob

    MagnusE wrote:
    When using write-through there is (as far as I know) no way to get a fully transactional behaviour (assuming you have more than one cache node) since each node is responsible for persisting its own data items (they will each use a separate connection to the database).
    If you on the other hand uses a "cache beside" pattern this can be made transactional using XA. As long as both caches belong to the same cache service they count as a single "last resource"....
    /MagnusYou also need to use the same transaction isolation and concurrency setting for it being the same last resource. Practically you should only have a single CacheAdapter instance enrolled in the same transaction.
    Best regards,
    Robert

  • Gateway between ORacle  and  as400

    Hello All,
    I am tring to set agateway between Oracle 9i and as400/db2.
    the drda gateway was intalled on the 9i on different oracle_hiome then the database( both on same machine) .
    configured the listener.
    and tnsping works!
    when I try to access the as400/db2 from the oracle using dblink
    i get "ORA-12154: TNS:could not resolve service name"
    could anyone shade some light on this ? - does this mena my init<sid>.ora
    is not configured correctly?
    obviously I was not able to install the package since can not access the as400.
    does any of you guys know how I can check for the db2 - database name?
    since on the site I am working they can not help me with that, and I am not a db2 / as400 guy. ( I think that the parameter i have for that is wrong) .
    thanks
    S.

    Hi Sahar,
    Unfortunately, i do not have an account on metalink.
    One question:
    1. Using Oracle Migration Workbench is not a solution - because OMWB doesn't support version 5 of DB2400;
    2. Using the Generic Connectivity (ODBC) to connect to DB2400 (on an AS400 machine) i have some problems in the configuration of the initSID.ora, listener.ora and tnsnames.ora and i am not able to connect to the database.
    MY question is: will i be able to use the Oracle Transparent Gateway to connect to DB2400 V5R4 ?
    Thanks a lot,
    Michael

  • Communication Failing with Corrupted Chars . Sql Server 2000 and AS400

    Hi Experts,
    I am facing this below error after 9 yrs. sql server 2000 and As400 on prod server. while on dev and stage it's running properly. Here username is ABCD, while it's showing BCD
    The OLE DB provider "MSDASQL" for linked server "" reported an error. Authentication failed. [SQLSTATE 42000] (Error 7399) Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "xxxxx".
    [SQLSTATE 42000] (Error 7303)  OLE DB provider "MSDASQL" for linked server "" returned message "[Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed".
    [SQLSTATE 01000] (Error 7412)  OLE DB provider "MSDASQL" for linked server returned message "[IBM][iSeries Access ODBC Driver]Communication link failure. comm rc=8001 - CWBSY0001 -
    User  BCD on server does not exist, Password length = 8, Prompt Mode = Never, System IP Address = "xxxxx". [SQLSTATE 01000] (Error 7412).  The step failed.
    Here ABCD user is also disabling/locking the profile on AS400 server.
    When we tried on Dev server, linked server through DSN working properly. Last time when it appeared 2 yrs ago, it resolved automatically. but now more than 10 days passed and still Failing.
    Please Guide Me.
    Regards,
    Manish

    So this setup has worked for nine years, and all of a sudden stopped working with this error message? Does not look trivial...
    What does Here ABCD user is also disabling/locking the profile on AS400 server mean? Is ABCD able to log in directly on the AS400 box?
    One possibility is that the user ABCD has been dropped or disabled, and then there is a bug in the ODBC driver where the first character of the username is distorted in the error message. I note that there are two spaces between "User" and "BCD".
    The other possibility is that the AS400 is receiving a login attempt from BCD (or something that ends in BCD with an invisible leading character). This sounds very difficult to troubleshoot...
    Erland Sommarskog, SQL Server MVP, [email protected]

  • More Guru Winners for February 2015 in the T-SQL category and many others!

    It's been a busy week that also saw the
    TECHNET WIKI SUMMIT 2015
    Then we had the results for
    February's TechNet Guru competition ALSO posted!
    http://blogs.technet.com/b/wikininjas/archive/2015/03/19/technet-guru-february-2015.aspx
    Below is a summary of the medal winners for December. The last column being a few of the comments from the judges.
    Unfortunately, runners up and their judge feedback comments had to be trimmed from THIS post, to fit into the forum's 60,000 character limit, however the full version is available on TechNet Wiki in the link above.
    Some articles only just missed out, so we may be returning to discuss those too, in future blogs.
     BizTalk Technical Guru - February 2015  
    Steef-Jan Wiggers
    BizTalk Server 2013 R2 Instrumenting a custom pipeline component with ETW
    Mandi Ohlinger: "Always a fan of helping our custom pipeline users. Great addition to this group."
    Sandro Pereira: "Images, format, descriptions, code and topic are excellent once again good work Steef-Jan."
    Vignesh Sukumar
    BizTalk BAM (Business Activity Monitoring)
    Sandro Pereira: "Great job on this article! Well explained and nice pictures, however the article format need to be improved and some proofreading is need"
    Mandi Ohlinger: "Welcome to the 'I heart BAM' fan club. Nice job on this topic. A MUST read for new-to-BAM users. "
    Steef-Jan Wiggers
    BizTalk Server 2013 R2 Instrumenting BAM Activity Tracking with ETW
    Sandro Pereira: "Images, format, descriptions, code and topic are excellent once again good work Steef-Jan."
    Mandi Ohlinger: "ETW for BAM Activities - LOVE it. Nice use of the Framework. "
     Forefront Identity Manager Technical Guru - February 2015  
    Wim Beck
    FIM2010: Filter objects on export
    PG: "Simple, targeted but nice article, nice layout. "
    Søren Granfeldt: "Nice. Would be perfect with a complete code sample."
     Microsoft Azure Technical Guru - February 2015  
    saramgsilva
    Azure Mobile Services: How to see the log files in server
    JH: "Log files are one of the most important things in a production environment. This article shows hows you can do that for the Azure Mobile Services in a nice and easy way."
    Alan Carlos: "Great article!"
    Ed Price: "Very useful topic! These are a great set of articles!"
    saramgsilva
    Azure Mobile Services: How to see the WebConfig file published
    Ed Price: "Great detail and fantastic use of images! I love all the in-line links!"
    JH: "Sometimes it is hard to tell when working in a multi-environment what configuration was published to the Server. The article shows short and easy how to do that for the Azure Mobile Services."
     Miscellaneous Technical Guru - February 2015  
    Arleta Wanat
    Retrieve all site mailboxes in your Office 365 tenant
    Durval Ramos: "This article has a well content, images and code that help to understand the solution. It has References and was Translated into more two languages. Good job!"
    Richard Mueller: "Good links. A great tutorial."
    Andy ONeill
    Silverlight: No Need to BringIntoView
    Durval Ramos: "A well formatted article is easier and more pleasant to read. This script is useful"
    Richard Mueller: "Good demonstration of a new feature."
    Chen V
    PowerShell : Enable Auto Reply for Shared Mail Box
    Durval Ramos: " A good solution originated of TechNet Forum. The script and images make it easy to understand and ensure you get the best interest to reader."
    Richard Mueller: "Good documentation of this feature."
     SharePoint 2010 / 2013 Technical Guru - February 2015  
    Geetanjali Arora
    SharePoint Online : Performing Batch Operations using REST API
    KB: "Very well explained article on a new and much awaited feature. Although Andrew Connell already explained this topic in several posts, this article still contains added value."
    Ed Price: "I love the History section. The formatting is amazing. And the References and See Also sections at the bottom are great icing on the cake. This is an important topic that's done incredibly well!"
    Matthew Yarlett
    Using the SpellCheck Webservice with the TinyMCE Richtext Editor and
    AngularJS in Office 365
    KB: "I read this article with growing interest, it contains a lot of added value. Very well and in-depth explanation. "
    Ed Price: "Great scenario! Good use of images, code, detail, and References! Could possibly use a greater breakdown and explanation of the code. This article just gets more and more interesting and valuable as you read it! Great job!"
    Arleta Wanat
    SharePoint Online: Turn on support for multiple content types
    in a list or library using Powershell
    KB: "Really nice, interesting and detailed article!"
    Ed Price: "The Content Types section helps explain this a lot! I also love the downloads at the end. What a fantastic resource!"
     Small Basic Technical Guru - February 2015  
    Nonki Takahashi
    Small Basic: Key Input
    Michiel Van Hoorn: "Great improvement."
    RZ: "Very nice explanation and examples of key input handling"
    Ed Price - MSFT
    Small Basic: The History of the Logo Turtle
    RZ: "Turtle (Logo) was the first programming language for many, including perhaps some of the Small Basic prorammers. Nice article explaining the history."
    Michiel Van Hoorn: "A nice background article and hopefull inspiration for those who want to start in robotics"
    Nonki Takahashi
    Small Basic: TechNet Wiki Article List
    Michiel Van Hoorn: "This is great! Perfect as a local cache of the articles. "
    RZ: "A good example"
     SQL BI and Power BI Technical Guru - February 2015  
    Sylvain PONTOREAU
    PowerBI API in .Net
    RB: "Great walkthrough. Looking forward for the WP8 version of the app ;)"
    PT: "Sylvain, very nice job with this. This is a timely topic about an emerging product that has great potential. This is a very good example of a well-written post on an interesting subject with enough information to be valuable to a
    solution developer. I will personally take time to explore the Power BI API and use your examples. "
     SQL Server General and Database Engine Technical Guru - February 2015  
    Ronen Ariely
    SQL Server Books Online
    AM: "Thank you for sharing this with us. It is quite informative and let us get familiar with BOL after the change from previous versins."
    Ed Price: "Nice! A very helpful introduction to Books Online! It also tells my technical writer friends that their hard work is appreciated! =^)"
    Durval Ramos
    How to Collect Events and Errors on SQL Server
    Ed Price: "Fantastic solution! A great resource that's amazingly well written with formatting, clear parameters, images, References, and a See Also section! And it even comes in Portuguese! Great article!"
    AM: "Thank you for sharing this with us. A good source to learn about our SQL Server instances. "
     System Center Technical Guru - February 2015  
    MarkusEliasson
    Troubleshoot ID 32008: DPM cannot
    protect this SharePoint farm...
    Ed Price: "An important topic that's very clear with great formatting and a good use of an image!"
    t.c.rich
    Managing Priorities of Client Polices and A/V Policies in SCCM
    Ed Price: "I love the descriptions, breakdown of sections, and code formatting! Great article!" 
    Mr X
    How to copy SMSTS.log when a Task Sequence fails in SCCM
    Ed Price: "A very helpful table and a good contribution to the community! Mr X again thinks of important content gaps to fill!"
     Transact-SQL Technical Guru - February 2015  
    Saeid Hasani
    T-SQL: How the Order of Elements in the ORDER BY Clause Implemented in the Output Result
    Durval Ramos: "Very well structured and with examples that clarify how a T-SQL statement can change the data output order."
    Richard Mueller: "Good use of Wiki guidelines and great examples."
    Ronen Ariely
    Free E-Books about SQL and Transact-SQL languages
    Richard Mueller: "An excellent collection and a great idea."
    Durval Ramos: "A good initiative. Very useful !!!"
    Ricardo Lacerda
    Declare Cursor (Transact-SQL) versus Window with Over - Running Totals
    - Accumulated Earnings
    Durval Ramos: "The "Window function" sample was well presented, but it was unclear how the chart was generated."
    Richard Mueller: "A new idea that can be very useful. Grammar needs work"
     Visual Basic Technical Guru - February 2015  
    Emiliano Musso
    Genetic algorithm to solve 2D Mazes in Visual Basic
    MR: "Great article! Love to see an application for AI in a simple game"
    Durval Ramos: "This article is well documented with images and your code clarifying important details. It also has References, a very useful video and your project available for download in "MSDN Code" !"
    Richard Mueller: "Incredible concept and code. Grammar needs work."
    Paul Ishak
    MultiHeadedTrackBar Control
    Durval Ramos: "Very interesting article, with methods and properties well documented. Your project was available in "MSDN Code" which facilitates the understanding of solution."
    Richard Mueller: "Amazing work. Extensive code but with lots of comments. Needs a TOC"
    tommytwotrain
    Using Trigonometry to draw graphic curves in VB.NET part 2.
    MR: "Great continuation. Love the usage of the code for circle text"
    Durval Ramos: "The article is interesting, but It's need to work better commenting about assemblies referenced on project and also structure your content into sections."
    Richard Mueller: "Good tutorial and example code demonstrating basic concepts. Avoid first person."
     Visual C# Technical Guru - February 2015  
    Magnus (MM8)
    C#: Enumerating collections that change
    Jaliya Udagedara: "Great article. Has a thorough and to the point explanation of problem and the solution with code samples. Loved it!"
    Carmelo La Monica: "Very useful and exhaustive about errors at runtime in these circumstances. Congratulations"
    Andy ONeill
    c#: Practical Poly
    Carmelo La Monica: "Fantastic artcle. Very detailed and exhaustive, congratulations ."
    Jaliya Udagedara: "Definitely worth reading this. Explains somewhat advance topic along with a fundamental concept of programming. "
     Wiki and Portals Technical Guru - February 2015  
    Durval Ramos
    Wiki: Microsoft Short URLs Personalized by SXP
    PG: "Nice idea, lots of potential to grow, really needs some more community attention."
    Richard Mueller: "An excellent idea. Good use of Wiki guidelines."
     Windows Phone and Windows Store Apps Technical Guru - February 2015  
    Carmelo La Monica
    Windows Phone 8: control Nokia Maps (Part 3)
    JH: "Part 3 of the series how to work with the Nokia maps control. As the previous articles this one contains a lot of code snippets and some pictures. Good work!"
    Ed Price: "A great topic, a fantastic breakdown of sections with clear descriptions, and a nice mix of code formatting and helpful images! Another stellar article from Carmelo! Great job including the link back at the end to the portal
    article!"
     Windows PowerShell Technical Guru - February 2015  
    Richard Mueller
    Document Your Active Directory Organization
    Alan Carlos: "Wow! Great article, congratulations!!! Very detailed!"
    Chen V: "Excellent Article - I liked return to top as well."
    Ed Price: "Wow! It's like a professional whitepaper! It's a valuable topic that's done with intricate detail! I love the images, diagrams, code blocks, and it ends very well with more resources and Wiki articles! The article just keeps
    digging deeper and deeper! Awesome job on this!"
    DexterPOSH
    PowerShell + REST API : Invoke-RestMethod Gotcha
    Chen V: "Good Article. TOC might have made this more rich! "
    Ed Price: "This is a good topic with some great content. It could benefit from sections and a TOC, as well as a References and See Also sections at the end. The inline links are helpful. Could "
    DexterPOSH
    PowerShell Trick : Search & highlight text in MS Word
    Ed Price: "This is a great solution, with some helpful Q&A in the comments!"
     Windows Presentation Foundation (WPF) Technical Guru - February 2015  
    Andy ONeill
    Lookless Controls
    KJ: "WPF can definitely be confusing when devs first encounter it. Like the way you break it down."
    Ed Price: "Wow! Fantastic explanations that are very clear and deep! The images and code bring it to life!"
    Andy ONeill
    Only One Parent
    KJ: "Same iwith this one, good 101 intro"
    Ed Price: "Another great tip! I love the detail here as well! Those snippets help a lot!"
    Andy ONeill
    Bind to Current Item of Collection
    KJ: "Feel like this topic has a lot of coverage out there, but it can't hurt to hammer on databinding yet one more time :) "
    Ed Price: "Fantastic topic with great execution! Although these could benefit from References and See Also wiki sections at the end, the Inline links help a lot!"
     Windows Server Technical Guru - February 2015  
    Mr X
    Ping for Beginners
    Mark Parris: "A good introduction with additional content."
    JM: "Great article idea and an excellent article that will be useful to many, thanks for your contribution."
    Philippe Levesque: "Good article that show a usefull utility for basic troubleshooting"
    Richard Mueller
    Active Directory: Get-ADFineGrainedPasswordPolicy Default and Extended Properties
    Mark Parris: "An Interesting insight on FGPP and their extended properties."
    JM: "This is a good piece of detailed information about this PowerShell cmdlet, thanks for sharing."
    Philippe Levesque: "Great article ! Illustrating some cmdlet's output when a user got assigned policy versus a user with the default domain policy could be a good idea."
    Richard Mueller
    Active Directory: Get-ADServiceAccount Default and Extended Properties
    Mark Parris: "A useful nugget of information."
    JM: "More very useful information about an AD cmdlet, thanks!"
    Philippe Levesque: "Good article !"
    As mentioned above, runners up and comments were removed from this post, to fit into the forum's 60,000 character limit.
    You will find the complete post, comments and feedback on the
    main announcement post.
    Please join the discussion, add a comment, or suggest future categories.
    If you have not yet contributed an article for this month, and you think you can write a more useful, clever, or better produced wiki article than the winners above,
    THERE'S STILL TIME! :D
    Best regards,
    Pete Laker
    More about the TechNet Guru Awards:
    TechNet Guru Competitions
    #PEJL
    Got any nice code? If you invest time in coding an elegant, novel or impressive answer on MSDN forums, why not copy it over to
    TechNet Wiki, for future generations to benefit from! You'll never get archived again, and
    you could win weekly awards!
    Have you got what it takes o become this month's
    TechNet Technical Guru? Join a long list of well known community big hitters, show your knowledge and prowess in your favoured technologies!

    Congrats to Saeid, Ronen, and Ricardo! Big thank you to all our contributors!
     Transact-SQL Technical Guru - February 2015  
    Saeid Hasani
    T-SQL: How the Order of Elements in the ORDER BY Clause Implemented in the Output Result
    Durval Ramos: "Very well structured and with examples that clarify how a T-SQL statement can change the data output order."
    Richard Mueller: "Good use of Wiki guidelines and great examples."
    Ronen Ariely
    Free E-Books about SQL and Transact-SQL languages
    Richard Mueller: "An excellent collection and a great idea."
    Durval Ramos: "A good initiative. Very useful !!!"
    Ricardo Lacerda
    Declare Cursor (Transact-SQL) versus Window with Over - Running Totals
    - Accumulated Earnings
    Durval Ramos: "The "Window function" sample was well presented, but it was unclear how the chart was generated."
    Richard Mueller: "A new idea that can be very useful. Grammar needs work"
    Also worth a mention were the other entries this month:
    [T-SQL] Retrieve Table List with Number of Rows by
    Emiliano Musso
    Richard Mueller: "Short but sweet solution to basic question."
    Durval Ramos: "A simple T-SQL script, but useful."
    [T-SQL] Search for Missing Values within a Numerical Sequence by
    Emiliano Musso
    Richard Mueller: "Clever solution with good code examples."
    Durval Ramos: "You need add more details about development of the idea and create a "Conclusion" section to easy understanding."
    [T-SQL] Converting Multiple Rows into HTML Format single ROW by
    Maheen Khizar (Bint-e-Adam)
    Durval Ramos: "In some situations, It's need to consume and format HTML tags for a UI, but It's important to remember that Best Practices recommend this formatting process preferably in Presentation Layer"
    Richard Mueller: "A great new idea. Some features need more explanation. Avoid first person."
    Ed Price, Azure & Power BI Customer Program Manager (Blog,
    Small Basic,
    Wiki Ninjas,
    Wiki)
    Answer an interesting question?
    Create a wiki article about it!

  • SQL Injection and variable substitutions

    Hello helpful forum, I'm trying to understand what really goes on "behind" the scenes
    with the variable substitutions in order to protect from sql injections.
    I'm using apex 3.0.0.00.20
    The trickiest component seems to be a Report of type "pl/sql returning sql", since
    multiple dynamic sql interpretations are done there.
    consider the following innocent looking disaster:
    DECLARE
    l_out VARCHAR2(2000);
    BEGIN
    l_out := 'select * from test_injection t where t.name like ''%' || :NAME || '%''';
    RETURN l_out;
    END;
    if NAME is a single quote the report will return:
    failed to parse SQL query: ORA-00911: invalid character
    which hints to the fact that NAME is not escaped, and you are in fact able to access db functions
    as in: '||lower('S')||'
    I also tried to put there a function that runs in a autonomous transaction to log its calls, and
    I see that it's called five times for each request.
    consider now the similar solution (notice the two single quotes):
    DECLARE
    l_out VARCHAR2(2000);
    BEGIN
    l_out := 'select * from test_injection t where t.name like ''%'' || :NAME || ''%''';
    RETURN l_out;
    END;
    with this second example nothing of the above is possible.
    So my theory (please confirm it or refute it) is that there is a first variable substitution done
    at the pl/sql level (and in the second case :NAME is just a string so nothing is substituted).
    Then the dynamic sql is executed and it returns the following string:
    select * from test_injection t where t.name like '%' || :NAME || '%'
    now another substitution is done (at an "APEX" level) and then query is finally executed to return
    the rows to the report.
    The tricky point seems to be that the first substitution doesn't escape the variable (hence the error
    with the single quote), while the second substitution does.
    Please let me know if this makes sense and what are the proper guidelines to avoid sql injection with
    the different kinds of reports and components (SQL, pl/sql returning sql, processes, ...)
    Thanks

    Giovanni,
    You should build report regions like this using the second method so that all bind variables (colon followed by name) appear in the resultant varchar2 variable, l_out in your example, which will then be parsed as the report query. This addresses not only the SQL injection problem but the shared-pool friendliness problem.
    Scott

  • Are the Pl/sql procedure and function atomic by themself

    i want to ask a question does oracle pl/sql procedure and function support Atomicity for the database by themself , or they became atomic incase we call them using begin -- end;

    You appear to be discussing transaction scope which is completely independent of PL/SQL blocks like procedures or how you call procedures. It's all in where commits (or rollbacks) are issued.
    If you have a procedure like this
    CREATE PROCEDURE p1
    AS
    BEGIN
      INSERT INTO some_table( key, value ) VALUES( 1, 'Foo' );
      INSERT INTO some_table( key, value ) VALUES( 1, 'Bar' );
    END;where the first statement succeeds and the second statement fails as a result of a duplicate key, there will still be a Foo row in the table but the procedure will have thrown an exception. The caller of the procedure may choose to commit or rollback the change-- that will determine whether the first statement's results are made permanent. If you have a procedure like this,
    CREATE PROCEDURE p1
    AS
    BEGIN
      INSERT INTO some_table( key, value ) VALUES( 1, 'Foo' );
      commit;
      INSERT INTO some_table( key, value ) VALUES( 1, 'Bar' );
    END;the commit will make the first insert permanent regardless of whether the second statement fails no matter what the calling code does (that's one reason that putting commits in stored procedures is generally a bad idea-- the caller is in a much better position to know what other uncommitted work has been done and whether it is safe to commit.
    Justin

  • What is SQL Trace and How to Use it .

    Dear Experts .
    1.) May You Please tell me What is the Purpose of SQL-Trace and How to use it ?
    2.) What is purpose of T-codes SE30 and ST22 ?
    Please it is urgent ...
    Regards :  Rajneesh

    Hi
    SQL Trace transaction ST05: The trace list has many lines that are not related to the SELECT statement in the ABAP program. This is because the execution of any ABAP program requires additional administrative SQL calls. To restrict the list output, use the filter introducing the trace list.
    The trace list contains different SQL statements simultaneously related to the one SELECT statement in the ABAP program. This is because the R/3 Database Interface - a sophisticated component of the R/3 Application Server - maps every Open SQL statement to one or a series of physical database calls and brings it to execution. This mapping, crucial to R/3s performance, depends on the particular call and database system. For example, the SELECT-ENDSELECT loop on a particular database table of the ABAP program would be mapped to a sequence PREPARE-OPEN-FETCH of physical calls in an Oracle environment.
    The WHERE clause in the trace list's SQL statement is different from the WHERE clause in the ABAP statement. This is because in an R/3 system, a client is a self-contained unit with separate master records and its own set of table data (in commercial, organizational, and technical terms). With ABAP, every Open SQL statement automatically executes within the correct client environment. For this reason, a condition with the actual client code is added to every WHERE clause if a client field is a component of the searched table.
    To see a statement's execution plan, just position the cursor on the PREPARE statement and choose Explain SQL. A detailed explanation of the execution plan depends on the database system in use.
    Run time analysis transaction SE30 :This transaction gives all the analysis of an ABAP program with respect to the database and the non-database processing. 
    STEPS
    Run time analysis transaction SE30
    In Transaction SE30, fill in the transaction name or the program name which needs to be analyzed for performance tuning.
    For our case, let this be “ZABAP_PERF_TUNING”
    After giving the required inputs to the program, execute it. After the final output list has been displayed, PRESS the “BACK” button.
    On the original SE30 screen, now click on “ANALYZE” button.
    The percentage across each of the areas ABAP/ Database/System shows the percentage of total time used for those areas and load on these areas while running the program . The lesser the database load faster the program runs.
    SQL Trace – ST05
    Starting the Trace:
    To analyze a trace file, do the following:
    Choose the menu path Test  Performance Trace in the ABAP Workbench or go to Transaction ST05. The initial screen of the test tool appears. In the lower part of the screen, the status of the Performance Trace is displayed. This provides you with information as to whether any of the Performance Traces are switched on and the users for which they are enabled. It also tells you which user has switched the trace on.
    Using the selection buttons provided, set which trace functions you wish to have switched on (SWL trace, enqueue trace, RFC trace, table buffer trace).
    If you want to switch on the trace under your user name, choose Trace on. If you want to pass on values for one or several filter criteria, choose Trace with Filter.
    Typical filter criteria are: the name of the user, transaction name, process name, and program name.
    Now run the program to be analyzed.
    Stopping the Trace:
    To deactivate the trace:
    Choose Test Performance Trace in the ABAP Workbench. The initial screen of the test tool appears. It contains a status line displaying the traces that are active, the users for whom they are active, and the user who activated them.
    Select the trace functions that you want to switch off.
    Choose Deactivate Trace. If you started the trace yourself, you can now switch it off immediately. If the performance trace was started by a different user, a confirmation prompt appears before deactivation-
    Analyzing a Sample trace data: PREPARE: Prepares the OPEN statement for use and determines the access method.
    OPEN: Opens the cursor and specifies the selection result by filling the selection fields with concrete values.
    FETCH: Moves the cursor through the dataset created by the OPEN operation. The array size displayed beside the fetch data means that the system can transfer a maximum package size of 392 records at one time into the buffered area.

  • Quotes question - JDBC and AS400

    Hello everybody, I got a question for you about quotes in string types.
    I'm trying to send data from my R3 to DB2 in AS400 and when the XI creates the SQL statement to insert the data it requires that each string is enclosed between quotes, otherwise an error will occur.
    In the mapper I only assign directly the source field to the target field without any operation and this way my string won't be enclosed between quotes, my question is, Is there a way to do the same operation but getting in the target field the string between quotes?
    I tried with patterns and got what I was looking for, but I'm looking for a solution that applies to all strings where I only do it once and forget it for ever.
    Regards

    Santana
    The apostrophe character (‘) is a reserved character in SQL syntax and is therefore replaced by an escape character if it occurs within value strings. This replacement character can be database-specific. Typical replacement characters are \’ or ’’(default value). For further info go through :
    http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
    Also for additonal info go through:
    AS400 jdbc
    Re: JDBC
    ---Satish

  • Can HTML-based reports be built in BLS via an SQL Query and XSLT?

    Hello xMII experts,
    I have already built a report in xMII which uses XSLT to provide group/sum totals in a web browser. However in a new project, the report must run at certain times and possibly when certain signals become true in the process.
    It appears that BLS is a good choice to achieve this and my proposed Transaction was:
    1. SQL Query Action(uses the same QueryTemplate as in xMII)
    2. XSLTransform Action on the resulting XML resultset (The .xsl file contains HTML which is the original used in xMII to produce the report there)
    3. HTML Loader action with the resulting output of the transformation
    I have now got some output in the resulting HTML file - however it omits all XSLT code - and I am left with an empty HTML shell but for a few images.
    This indicates that perhaps no SQL data was ever returned.
    I have therefore two questions:
    1. How can I check if the SQL returned data?
    2. Is it possible to deliver data to a HTML file directly after an XSLTransformation.
    Looking forward to your responses
    Best Regards
    Robert Sales

    Thank you for the replies.
    I am a little closer the result I need - however I think I need to explain what I had and what I need a little better.
    Before BLS
    1 xMII report page (.irpt extension) with two iCalendar applets (start/end date) and a set of buttons (1 for each report)
    Upon clicking on a button the two dates are passed into an .irpt file, and via a servlet an SQL QueryTemplate and a XSL DisplayTemplate are used to build the report.
    The HTML is embedded in the XSL file - thereby generating the report direct in the web browser.
    - This all works fine
    With BLS
    A transaction which uses a modified SQL QueryTemplate (no date parameters) passing the results to an XML file. This works.
    Now when I click on the button in my xMII screen the .irpt file is called with no Date parameters and the xAcute QueryTemplate called with the XSL DisplayTemplate. The irpt file has <html> and <body> tags with XSL file in the Servlet call providing the tables and data extraction from the XML.
    I have no additional HTML file so I placed the iframe tag inside the XSL file - but it refers to the .irpt file - this doesn't sound right!
    I do get a little output in the web browser but it still omits all XSLT code.
    One more point - The Transaction can be scheduled and run as required - but I need the entire report to created and stored for viewing at a later date. Will a servlet tag running inside an .irpt file achieve this?
    Sorry for the chaotic writing here - but I must leave the office.
    Regards
    Robert Sales

  • SQL Performance and Security

    Help needed here please. I am new to this concept and i am working on a tutorial based on SQL performance and security. I have worked my head round this but now i am stuck.
    Here is the questions:
    1. Analyse possible performance problems, and suggest solutions for each of the following transactions against the database
    a) A manager of a project needs to inspect total planned and actual hours spent on a project broken down by activity.
    e.g     
    Project: xxxxxxxxxxxxxx
    Activity Code          planned     actual (to date)
         1          20          25
         2          30          30
         3          40          24
    Total               300          200
    Note that actual time spent on an activity must be calculated from the WORK UNIT table.
    b)On several lists (e.g. list or combo boxes) in the on-line system it is necessary to identify completed, current, or future projects.
    2. Security: Justify and implement solutions at the server that meet the following security requirements
    (i)Only members of the Corporate Strategy Department (which is an organisation unit) should be able to enter, update and delete data in the project table. All users should be able to read this information.
    (ii)Employees should only be able to read information from the project table (excluding the budget) for projects they are assigned to.
    (iii)Only the manager of a project should be able to update (insert, update, delete) any non-key information in the project table relating to that project.
    Here is the project tables
    set echo on
    * Changes
    * 4.10.00
    * manager of employee on a project included in the employee on project table
    * activity table now has compound key, based on ID dependence between project
    * and activity
    drop table org_unit cascade constraints;
    drop table project cascade constraints;
    drop table employee cascade constraints;
    drop table employee_on_project cascade constraints;
    drop table employee_on_activity cascade constraints;
    drop table activity cascade constraints;
    drop table activity_order cascade constraints;
    drop table work_unit cascade constraints;
    * org_unit
    * type - for example in lmu might be FACULTY, or SCHOOL
    CREATE TABLE org_unit
    ou_id               NUMBER(4)      CONSTRAINT ou_pk PRIMARY KEY,
    ou_name          VARCHAR2(40)     CONSTRAINT ou_name_uq UNIQUE
                             CONSTRAINT ou_name_nn NOT NULL,
    ou_type          VARCHAR2(30) CONSTRAINT ou_type_nn NOT NULL,
    ou_parent_org_id     NUMBER(4)     CONSTRAINT ou_parent_org_unit_fk
                             REFERENCES org_unit
    * project
    CREATE TABLE project
    proj_id          NUMBER(5)     CONSTRAINT project_pk PRIMARY KEY,
    proj_name          VARCHAR2(40)     CONSTRAINT proj_name_uq UNIQUE
                             CONSTRAINT proj_name_nn NOT NULL,
    proj_budget          NUMBER(8,2)     CONSTRAINT proj_budget_nn NOT NULL,
    proj_ou_id          NUMBER(4)     CONSTRAINT proj_ou_fk REFERENCES org_unit,
    proj_planned_start_dt     DATE,
    proj_planned_finish_dt DATE,
    proj_actual_start_dt DATE
    * employee
    CREATE TABLE employee
    emp_id               NUMBER(6)     CONSTRAINT emp_pk PRIMARY KEY,
    emp_name          VARCHAR2(40)     CONSTRAINT emp_name_nn NOT NULL,
    emp_hiredate          DATE          CONSTRAINT emp_hiredate_nn NOT NULL,
    ou_id               NUMBER(4)      CONSTRAINT emp_ou_fk REFERENCES org_unit
    * activity
    * note each activity is associated with a project
    * act_type is the type of the activity, for example ANALYSIS, DESIGN, BUILD,
    * USER ACCEPTANCE TESTING ...
    * each activity has a people budget , in other words an amount to spend on
    * wages
    CREATE TABLE activity
    act_id               NUMBER(6),
    act_proj_id          NUMBER(5)     CONSTRAINT act_proj_fk REFERENCES project
                             CONSTRAINT act_proj_id_nn NOT NULL,
    act_name          VARCHAR2(40)     CONSTRAINT act_name_nn NOT NULL,
    act_type          VARCHAR2(30)     CONSTRAINT act_type_nn NOT NULL,
    act_planned_start_dt     DATE,
    act_actual_start_dt      DATE,
    act_planned_end_dt     DATE,
    act_actual_end_dt     DATE,
    act_planned_hours     number(6)     CONSTRAINT act_planned_hours_nn NOT NULL,
    act_people_budget     NUMBER(8,2)      CONSTRAINT act_people_budget_nn NOT NULL,
    CONSTRAINT act_pk PRIMARY KEY (act_id, act_proj_id)
    * employee on project
    * when an employee is assigned to a project, an hourly rate is set
    * remember that the persons manager depends on the project they are on
    * the implication being that the manager needs to be assigned to the project
    * before the 'managed'
    CREATE TABLE employee_on_project
    ep_emp_id          NUMBER(6)     CONSTRAINT ep_emp_fk REFERENCES employee,
    ep_proj_id          NUMBER(5)     CONSTRAINT ep_proj_fk REFERENCES project,
    ep_hourly_rate      NUMBER(5,2)      CONSTRAINT ep_hourly_rate_nn NOT NULL,
    ep_mgr_emp_id          NUMBER(6),
    CONSTRAINT ep_pk PRIMARY KEY(ep_emp_id, ep_proj_id),
    CONSTRAINT ep_mgr_fk FOREIGN KEY (ep_mgr_emp_id, ep_proj_id) REFERENCES employee_on_project
    * employee on activity
    * type - for example in lmu might be FACULTY, or SCHOOL
    CREATE TABLE employee_on_activity
    ea_emp_id          NUMBER(6),
    ea_proj_id          NUMBER(5),
    ea_act_id          NUMBER(6),      
    ea_planned_hours      NUMBER(3)     CONSTRAINT ea_planned_hours_nn NOT NULL,
    CONSTRAINT ea_pk PRIMARY KEY(ea_emp_id, ea_proj_id, ea_act_id),
    CONSTRAINT ea_act_fk FOREIGN KEY (ea_act_id, ea_proj_id) REFERENCES activity ,
    CONSTRAINT ea_ep_fk FOREIGN KEY (ea_emp_id, ea_proj_id) REFERENCES employee_on_project
    * activity order
    * only need a prior activity. If activity A is followed by activity B then
    (B is the prior activity of A)
    CREATE TABLE activity_order
    ao_act_id          NUMBER(6),      
    ao_proj_id          NUMBER(5),
    ao_prior_act_id      NUMBER(6),
    CONSTRAINT ao_pk PRIMARY KEY (ao_act_id, ao_prior_act_id, ao_proj_id),
    CONSTRAINT ao_act_fk FOREIGN KEY (ao_act_id, ao_proj_id) REFERENCES activity (act_id, act_proj_id),
    CONSTRAINT ao_prior_act_fk FOREIGN KEY (ao_prior_act_id, ao_proj_id) REFERENCES activity (act_id, act_proj_id)
    * work unit
    * remember that DATE includes time
    CREATE TABLE work_unit
    wu_emp_id          NUMBER(5),
    wu_act_id          NUMBER(6),
    wu_proj_id          NUMBER(5),
    wu_start_dt          DATE CONSTRAINT wu_start_dt_nn NOT NULL,
    wu_end_dt          DATE CONSTRAINT wu_end_dt_nn NOT NULL,
    CONSTRAINT wu_pk PRIMARY KEY (wu_emp_id, wu_proj_id, wu_act_id, wu_start_dt),
    CONSTRAINT wu_ea_fk FOREIGN KEY (wu_emp_id, wu_proj_id, wu_act_id)
              REFERENCES employee_on_activity( ea_emp_id, ea_proj_id, ea_act_id)
    /* enter data */
    start ouins
    start empins
    start projins
    start actins
    start aoins
    start epins
    start eains
    start wuins
    start pmselect
    I have the tables containing ouins and the rest. email me on [email protected] if you want to have a look at the tables.

    Answer to your 2nd question is easy. Create database roles for the various groups of people who are allowed to access or perform various DML actions.
    The assign the various users to these groups. The users will be restricted to what the roles are restricted to.
    Look up roles if you are not familiar with it.

  • How to migrate SharePoint 2013 Content and Configuration DataBases to a new SQL Server and DataBases in it?

    Hi,
    We need to migrate Our current 1 clustered SQL Server, Many Configurations DataBases and Many Content DataBases to a brand new clustered SQL server and brand new databases in it.
    How can I do this?
    Can someone list the steps involved?
    Thanks.  

    Hi,
    According to your description, you want to move Content databases  and Configuration databases to a new SQL Server,  refer to this article:
    https://technet.microsoft.com/en-us/library/cc512725.aspx?f=255&MSPPError=-2147217396
    Besides, here is a similar post, you can use as a reference:
    https://social.technet.microsoft.com/Forums/office/en-US/2cd46f7a-d583-41b2-82c2-ddc6d7c43fb8/how-to-move-sharepoint-databases-to-new-sql-server?forum=sharepointadminprevious
    Best Regards,
    Lisa Chen
    TechNet Community Support
    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
    [email protected]

  • Advice on SQL Logs and Backups

    Hi All,
    I've been trying to understand SQL backups and I'm getting a bit stuck in one area - the log files.
    I find they're getting quite big and as such filling up my drives. I'm guessing that the best way to handle this is to truncate them every so often - as the data is in the live DB I'm assuming that the log files should be small.
    Q1 - I do daily full backups on my DB's via a maintenance plan so is it safe to say that the log files can be truncated daily?
    Q2 - How do I go about truncating the logs? I tried a backup of them but I'm not sure what to do next.
    Thanks for any help.
    Tom

      This can cause fragmentation and performance issues. Truncating the log is what happens when you take a backup.
    Prashanth,
    Shrinking log file does not causes fragmentation ( if you shrink data file it does cause) but your are correct that Shrinking log fiel should not be made every day practice.After shrinking when log file tries to grow it has to ask OS to allocate it space
    which if done frequently ( on slower disk) can cause performance issue.
    Tom,
    >>I do daily full backups on my DB's via a maintenance plan so is it safe to say that the log files can be truncated daily?
    A:NO only transaction log truncates log file ( or marks it reusable).So you have to take transaction log backup frequently( hope your DB is in full recovery).If your DB is in simple recovery automatic truncation happens and SQL server takes care of it after
    checkpoint or when log grows 70 % of it size.
    >>Q2 - How do I go about truncating the logs? I tried a backup of them but I'm not sure what to do next.
    Again answer is simple take transaction log backup frequently or according to your RPO and RTO
    PS: Sometimes when there is long running transaction like huge delete operation,index rebuild of huge database log might grow even frequent transaction log backup is there this is by design because unless transaction finishes or commits logs cannot be truncated
    so if you face it look for open transaction and wait for it to commit.
    Hope this helps
    Please mark this reply as the answer or vote as helpful, as appropriate, to make it useful for other readers

  • Load table structure definition from Sql server and mirroring

    Hi, we have to replicate some tables from sql server
    into SAP dictionary.
    Is there a tool/transaction for import the table structure
    from a DBRMS like sql/oracle ?
    Adn is there some third part solution for replicate data
    from/to sql server and Sap ?
    Thanks in advance.
    Riccardo Galli.

    Hi,
    Dont know if there are any tools for this but onething is sure you will need to create the table thru SE11.
    I had done something similar, created a BDC to create table and it works.
    Provide the BDC with list of fields, datatype, len, key fields and the BDC will create the table.
    You will need to activate the table once its created, for some reason sap put the table in "partial active" status after creation .
    Good luck.
    Ravi

  • How to use the transaction STO5 (SQL Trace)

    Hi,
        I want to check the performance of program using the ST05 transaction. Please send me the step by step procedure to trace my program.
    Thanks & Regards,
    Santhosh Kumar.R

    Hi,
    following explanation clearly you abt ST05
    Hi,
    SQL trace(ST05) provides the developer with the ability to analyse database select statements. Simply execute ST05 to turn on SQL trace, then execute the statement/program you want to analyse. Now turn off SQL trace using ST05
    and click on list trace to view the details.
    You can also perform traces on other items such as authorisation objects.
    The trace list has many lines that are not related to the SELECT statement in the ABAP program. This is because the execution of any ABAP program requires additional administrative SQL calls. To restrict the list output, use the filter introducing the trace list.
    The trace list contains different SQL statements simultaneously related to the one SELECT statement in the ABAP program. This is because the R/3 Database Interface - a sophisticated component of the R/3 Application Server - maps every Open SQL statement to one or a series of physical database calls and brings it to execution. This mapping, crucial to R/3s performance, depends on the particular call and database system. For example, the SELECT-ENDSELECT loop on the SPFLI table in our test program is mapped to a sequence PREPARE-OPEN-FETCH of physical calls in an Oracle environment.
    The WHERE clause in the trace list's SQL statement is different from the WHERE clause in the ABAP statement. This is because in an R/3 system, a client is a self-contained unit with separate master records and its own set of table data (in commercial, organizational, and technical terms). With ABAP, every Open SQL statement automatically executes within the correct client environment. For this reason, a condition with the actual client code is added to every WHERE clause if a client field is a component of the searched table.
    To see a statement's execution plan, just position the cursor on the PREPARE statement and choose Explain SQL. A detailed explanation of the execution plan depends on the database system in use.
    Performance Tuning is useful mainly reducing load on database. It is very important aspect while writing the programs/FM etc.....
    SQL Trace
    Use
    The SQL Trace function is an on-demand log of selected SQL statements that are issued against the database through the Open SQL Engine. The SQL Trace can be switched on or off dynamically. The log format is database independent. Besides the SQL statement text, each log record contains information about the point in time when the statement was executed, its duration, its input parameters and results (where applicable) as well as context information.
    Features
    The SQL Trace is especially useful for:
    Development:
    SQL Trace can help JDO, enterprise beans, servlet and JSP developers to learn which kind of database accesses their code produces.
    &#61489;&#61486; Performance analysis
    Typically, performance issues are caused by inefficient database accesses. In this case SQL Trace can be used to show the issued SQL statements and their duration, thus helping to identify inefficient SQL statements.
    Functions
    <b>The following functions are available on the initial screen</b>:
    Select trace:
    • Select the trace mode SQL Trace, Enqueue Trace, RFC Trace, or Table Buffer Trace. You can select mutliple trace modes simultaneously.
    Select trace function:
    • Start the trace recording.
    • Stop the trace recording.
    • Branch to trace list, detailed list, or time-sorted list.
    • Branch to Explain SQL to analyze an SQL statement without an explicit trace file.
    Trace files are managed by the system. Thus they can be saved, like any other object;
    saved trace files can be displayed and deleted.
    Trace Status
    A trace can only be activated once on any application server. The Trace Status display informs you whether another user in the system has already activated a particular trace.
    Starting the Trace
    Prerequisites
    <b>You can only switch on the Performance Trace for a single instance</b>. You should already have decided the scope and targets of your performance analysis.
    Procedure
    <b>To analyze a trace file, do the following</b>:
    ... 1. Choose the menu path Test &#61614; Performance Trace in the ABAP Workbench.
    The initial screen of the test tool appears. In the lower part of the screen, the status of the Performance Trace is displayed. This provides you with information as to whether any of the Performance Traces are switched on and the users for which they are enabled. It also tells you which user has switched the trace on.
    2. Using the selection buttons provided, set which trace functions you wish to have switched on (SWL trace, enqueue trace, RFC trace, table buffer trace).
    3. If you want to switch on the trace under your user name, choose Trace on.
    If you want to pass on values for one or several filter criteria, choose Trace with Filter.
    Typical filter criteria are: the name of the user, transaction name, process name, and program name.
    4. Now run the program to be analyzed.
    You will normally analyze the performance trace file immediately. In this case, it is a good idea to use a separate session to start, stop, and analyze the Performance Trace
    If you are shown trace kernel errors on the initial screen (for example, not enough storage space available), you must first remove the errors or have them removed by your system administrator.
    The selected trace types can be changed as required during a performance trace interval (time between switching on and off the trace). The user (user group) must remain unchanged.
    Result
    The results of the trace recording are written to a trace file. If trace records are overwritten during the trace interval, the system displays a message to inform you when you analyze the trace file.
    The results of the trace recording are stored to ten trace files. Overwriting trace records, however, cannot be entirely excluded in this case either.
    The Performance Trace records all database access calls, table buffer calls, remote calls, or calls for user lock activity. These measurements can affect the performance of the application server where the trace is running. To preserve system performance, you should therefore turn off the trace as soon as you finish recording your application.
    Stopping the Trace
    Prerequisites
    You have started the trace and finished running the program that you want to analyze.
    <b>For performance reasons, you should switch off the traces as soon as you have finished recording.</b>
    Procedure
    <b>To deactivate the trace:</b>
    ... 1. Choose Test &#61614;Performance Trace in the ABAP Workbench.
    The initial screen of the test tool appears. It contains a status line displaying the traces that are active, the users for whom they are active, and the user who activated them.
    2. Select the trace functions that you want to switch off.
    3. Choose Deactivate Trace.
    If you started the trace yourself, you can now switch it off immediately. If the performance trace was started by a different user, a confirmation prompt appears before deactivation-
    Result
    The results of the trace are stored in one or more trace files. You can then analyze the performance data stored in the trace file. See also, Analyzing Performance Data.
    Look at the below link
    http://www.sapbrainsonline.com/TOOLS/SQLTRACE/SQL_TRACE.html
    <b>Reward with points if helpful.</b>
    Regards,
    Vijay

Maybe you are looking for