Optimizer Issues

Hi Experts,
We are working for trading industry where we procure and sell the products. We haven't setup PPM/PDS. We are using Optimizer extensively. We have been facing the following two issues. If you encouter the same, please let us know.
-> We have saftey stock maintained in location master (Destination) with method SB. When we run optimizer system doesn't considering the safety stock and only considering the demand. Please suggest How do we make system to consider safety stock also as demand.
-> After Optimization, receipts are generated at Distribution receipts at Source even product is marked for "X" in procurement tab page at source level. Why system is not giving importance to Production receipts is worrying me. Can you please throw some light.
Thanks & Regards
Ugamesh

Hi,
Please first make sure that:
1)In product master, you have maintained safety stock on 'lot size' tab.
2)In product master, 'Procurement' tab, whether you have set anything for the below two fileds:
Prod. Storage Costs
Safety Stock Penalty
If storage costs is high, you may not get stock created.
3)In optimizer profile, you set other option than 'Ignore safety stock' on the first tab.
Then you go to /sapapo/opt11 to check the optimizer log. Find your log, and push the application log icon (on the second column).
In the Input log, there's a table calls 'ET_LOCPROD'. Check whether safety stock is correctly input.
You can also check result log, but if you use 'Expain' functionality, you may get a better view of the result.
Regarding the source of supply, optimizer source determination is based on costs.
If the costs on PPM/PDS is more than transportation lane, transportaion lane will be chosen and distribution receipts are created instead of production receipts.
Please refer to online help http://help.sap.com/saphelp_scm70/helpdata/EN/da/8df3128121304a8dc1eef961a6d3a8/frameset.htm
Source Determination in Supply Network Planning -> Source Determination (Optimizer)
Best Regards/Ada

Similar Messages

  • Oracle 11g on Linux : Query Optimization issue

    Hi guru,
    I am facing one query optimization related problem in group by query
    Table (10 million Records)
    Product(ProductId number,ProductName varchar(100),CategoryId VARCHAR2(38),SubCategoryId VARCHAR2(38))
    Index
    create index idxCategory on Product (CategoryId,SubCategoryId)
    Query1:To find product count for all CategoryId and SubCategoryId
    select CategoryId,SubCategoryId,count(*) from Product group by CategoryId,SubCategoryId
    Above query is not using index idxCategory and doing table scan which is very costly.
    When I fire Query2: select count(*) from Product group by CategoryId,SubCategoryId
    then it is properly using index idxCategory and very fast.
    Even I specified hint in Query1 but it is not using hint.
    Can anybody suggest why oracle is not using index in Query1 and what should I do so that Query1 will use Index.
    Thanks in advance.

    user644199 wrote:
    I am facing one query optimization related problem in group by query
    Query1:To find product count for all CategoryId and SubCategoryId
    select CategoryId,SubCategoryId,count(*) from Product group by CategoryId,SubCategoryId
    Above query is not using index idxCategory and doing table scan which is very costly.
    When I fire Query2: select count(*) from Product group by CategoryId,SubCategoryId
    then it is properly using index idxCategory and very fast.
    Even I specified hint in Query1 but it is not using hint.
    Can anybody suggest why oracle is not using index in Query1 and what should I do so that Query1 will use Index.The most obvious reason that the table needs to be visited would be that the columns "CategoryId" / "SubCategoryId" can be NULL but then this should apply to both queries. You could try the following to check the NULL issue:
    select CategoryId,SubCategoryId,count(*) from Product where CategoryId is not null and SubCategoryId is not null group by CategoryId,SubCategoryId
    Does this query use the index?
    Can you show us the hint you've used to force the index usage and the EXPLAIN PLAN output of the two queries including the "Predicate Information" section? Use DBMS_XPLAN.DISPLAY to get a proper output, and use the \ tag before and after when posting here to format it using fixed font. Use the "Quote" button in the message editor to see how I used the \ tag here.
    Are above queries representing the actual queries used or did you omit some predicates etc. for simplicity?
    By the way, VARCHAR2(38) and ...ID as name, are these columns storing number values?
    Regards,
    Randolf
    Oracle related stuff blog:
    http://oracle-randolf.blogspot.com/
    SQLTools++ for Oracle (Open source Oracle GUI for Windows):
    http://www.sqltools-plusplus.org:7676/
    http://sourceforge.net/projects/sqlt-pp/

  • SNP Optimizer Issue

    Hi Experts,
    We are working on SNP Optimization scenario with Transportation, Procurement, Strorage and penalty Cost. Our business process trading industry (we procure and sell).
    We maintained Optmizaion profile with linear and Primal simplex Algorithm. We took a sample scenario where our product has four suppliers with diffrent transportation costs maintained in transportation lanes.
    In SDP94, Optimizer behaving diffrently.
    Case 1: When we run directly at destination location (product + Destination) level optimization running smoothly with out picking any transportation lanes, costs. Subsequently no purchase requistions are created.
    Case 2: When we select all locations (Product + Source and Destination) and run optimization the following errors are coming which we are not able to identify the origin.
    Error 1: Cost function 051MhWG07j6MwgLZXQcXSm not found
    Error 2: Conversion from STD to EA for product WDE-MATL1A not maintained
    Error 3: Error occurred when reading data
    We checked CCR no errors are identified. Also there is no UOM called STD. We couldn't understand why Optimizer is proposing STD to EA conversion error.
    Can you please throw some light.
    Thanks in advance

    Hi Ugameswara Rao
    When you run optimizer,you need to run as a whole including all teh Network...So,the first observation is standard
    Regarding teh second issue,It is a Master data inconsistency,So,please identify the 'concerned location product' and maintain the cost accordingly(Check teh log to find the concerned location product)
    Regarding error "Error occurred when reading data",please raise a seperate thread,as the raesons for this are multiple...but try this first run //om17,model consistency check and correct the data model set...but,the reason for this could also be a softwre error....hence,if the above don't help,please rasise a seperate thread with all details like: STEP in which thi serror occur,and also teh message log details
    Thanks and Regards
    Suresh

  • Configuring Maintenance Optimizer issue

    Hi All,
    This is the first time I am configuring SM 4.0. I am done with installation, and want to conigure maintenance optimizer.
    I followed the IMG guide step by step.
    But after all done, there are no systems listed under the maintenance optimizer of my Solution Landscape.
    Instead I get a message:
    <b>Change requests cannot be displayed or created, because the RFC connection has errors, or is not maintained.
    Check whether the RFC connection to the Change Man agement system is under the key CHARM_DEST (APPLI field in the DESTINAT field), in the view BCOS_CUST. You need authorization for the cross-client view/table maintenance (S_TABU_DIS and S_TABU_CLI).
    Check the RFC connection in the transaction SM59. If your SAP Solution Manager system is also your Change Manager system, the internal connection must be 'NONE'. You need authorization for the administration of RFC connections (S_RFC_ADM).</b>
    Meanwhile I have issue with my J2EE engine not starting due to some UME issues, which I am working on parallely.
    Please do let me know what would be the issue.
    I have followed the note 990534 and doen with the BC sets.
    But I am not sure where am I making a mistake.
    One more doubt is, does maintenance optimizer connect to the SAP service market place through SAPOSS??? and am I not seeing anu system because my SLD is down. Please bear with my ignorance, I am a little lost here.
    I have completed the solution landscape, logical component, etc.
    Please help...
    Regards,
    Sapfan

    Hi JP,
    My current SP levels are:
    SAP_BASIS - 0011
    SAP_ABAP - 0011
    PI_BASIS 2005_11 - 0011
    ST-PI 2005_11 - 0003
    SAP_BW - 0011
    SAP_AP - 0007
    BBPCRM 5 - 0007
    CPRXRPM - 0007
    ST400 - 0010
    ST-ICO - 0008
    ST-SER - 0007
    The issue is I did not connect to SAP yet, as I have only one RFC generated i.e. SAPOSS> Since my SAPRouter is not yet configured, I will connect to a valid  SAPRouter once all the SM config is done.
    I als got sone error in generating RFC for the main system when I used the wizard. I selected Change management and customizing directory and also selected Assign RFC for system monitoring.
    I changed back the UME source to client 001, but still same.
    Moreover the maintenance optimizer is not showing the satellite system.
    I am really stuck.
    Please let me know if you require more information.
    I created the main system and defined the solution, as per the SPRO->Solution Manager -> Advanced Configuration -> Basic settings ->
    I started this only after applying SP10.
    Now I don see the systems both for Setup Solution monitoring and in maintenance optimizer.
    WIll the system not reflect is the java ebngine is down???
    Regards,
    P.K

  • TopLink design/optimization issues

    I've been developing a prototype using TopLink sporadically over the last few months, and I have 2 questions:
    1. Is there a way in a ManyToManyMapping to optimize the DELETE SQL statements that are generated when a collection is modified? I have a large number of options that are associated with objects. Whenever I modify these options I get statements such as:
    DELETE FROM T_USERSGROUPS WHERE GROUPID = 3 AND USERID= 1
    DELETE FROM T_USERSGROUPS WHERE GROUPID = 2 AND USERID= 1
    DELETE FROM T_USERSGROUPS WHERE GROUPID = 47 AND USERID= 1
    Followed by the INSERT statements.
    Is there a way for TopLink to generate 1 DELETE FROM T_USERSGROUPS WHERE USERID=1 and the beginning of this transaction?
    2. Many of my frequently used tables contain 50-100 rows of data and the TopLink caching works pretty well. However, I have many instances in my app where I query for ALL of these objects. If I ask for a specific item, the DB is not queried because it is found in cache. However, I would like to avoid a DB query when asking for all objects as well.
    I understand the TopLink does provide some optimizations by not actually populating this object if already found, but I'm wondering if there is a trick or setting that would cause TopLink to a[i]Long postings are being truncated to ~1 kB at this time.

    2 great questions. For some reason the second question was truncated somewhat though..
    1 - Bulk update/delete statements are not supported at this time, but it is on the radar screen and something that is being investigated. The issue is cost/benefit. Engineering needs to weigh the costs of calculating in Java if a bulk update can/should be done vs the speed of just doing the increased SQL calls. Likely, some application intervention would be required.
    2 - I can only read the first paragraph, but I think you are asking about in memory queries. The situation you describe is what I would call "reference data", and I would actually recommend not using in memory queries for that -- there is a better way. Simply cache a vector on your own in the app that holds onto all the cached objects. I.e., do a read all query that hits the database first, then cache that collection somewhere. Since it's a finite list, you don't have to worry about size, and since you have a reference to the objects in the collection, the won't be GC'd. This would be faster than doing an in-memory query. Now if you're doing queries to find subsets of the data, it's likely faster to go to the database. Databases are faster at queries than doing the operation[i]Long postings are being truncated to ~1 kB at this time.

  • Process & optimize issue with timeid

    Hi,
    I work on script logics with BPC 7.0 xls2007 sql2005.
    I need to process my application but I have this issue message :
       - Errors in the OLAP storage engine: The attribute key cannot be found: Table: dbo_tblFactEPS, Column: TIMEID, Value: 10000022.
    Errors in the OLAP storage engine: The process operation ended because the number of errors encountered during processing reached the defined limit of allowable errors for the operation.
    Errors in the OLAP storage engine: An error occurred while processing the 'EPS' partition of the 'EPS' measure group for the 'EPS' cube from the DEV database.
    Errors in the OLAP storage engine: The process operation ended because the number of errors encountered during processing reached the defined limit of allowable errors for the operation.
    Internal error: The operation terminated unsuccessfully
    The timid value 10000022 correspond to 2010.TOTAL.
    So I saw the dbo_tblFactEPS table with :
    Select * from tblfactEPS where TIMEID not in (select timeid from mbrTIME)
    But my selection is empty...
    Moreover, I can't process my time dimension.
    Can you help me ?
    Regards,
    Morgann

    2010.Total is not a base member and normally you should not have something like that into your fact table.
    Into fact table you must have just base members.
    your selection is not completed. It has to be
    Select * from tblfactEPS where TIMEID not in (select timeid from mbrTIME where calc = 'N')
    If you will do that actually you will see records.
    Kind Regards
    Sorin Radulescu

  • Cursor Optimization issue

    Hello everybody,
    im a bit new in sql coding and i need your help to optimize a cursor i have created that seems (a bit - not much) slow. Any comments-suggestions are welcomed . Ty in Advance,
    Mike
    (the purpose of the cursor is to take multiple values from a buffer-tmp table from a remote mssql db to my oracle one and then divide them depending use in different tables... in detail these are customers that are performing some communications with some companies .... these comms are called OBD, the hard thing was that the remote system is totally different in architecture from mine... the cursor works fine but i believe it can be coded to be faster)
    CREATE OR REPLACE PROCEDURE RETRIEVE_OBD_DATA4 (
    comm_numEntries OUT NUMBER, comm_numUpdates OUT NUMBER, comm_numInserts OUT NUMBER,
    lov_numEntries OUT NUMBER, lov_numUpdates OUT NUMBER, lov_numInserts OUT NUMBER,
    pel_numEntries OUT NUMBER, pel_numUpdates OUT NUMBER, pel_numInserts OUT NUMBER) IS
    l_indx1 NUMBER; l_comm1 char(600);l_code1 NUMBER;l_indx2 NUMBER;l_comm2 char(600);
    l_code2 NUMBER;l_tmp1 NUMBER;
    p_indx_id1 NUMBER;p_name1 char(400);p_surname1 char(400);p_address1 char(400);p_region1 char(800);
    p_username1 char(400);p_brandname1 char(400);p_nomiki1 char(400);p_afm1 char(400);p_phone1 char(400);
    p_fax1 char(800);p_drasti1 char(400);p_date1 char(200);p_gender1 char(400) ;p_tmp1 NUMBER;
    c_tmp1 number; OBD_KWDIKOS1 char(800); OBD_ONOMA1 char(600); HMEROMHNIA_E1 char(200); SYMB1 number; LOC1 number; P_INDX_ID2 number;
    CURSOR lov IS
    SELECT OBD_KWDIKOS AS L_CODE, OBD_ONOMA AS L_COMM
    FROM PORTAL.APOPSI_COMM_OBD
    GROUP BY OBD_KWDIKOS, OBD_ONOMA;
    CURSOR pelates IS
    SELECT ONOMA AS P_NAME, EPWNYMO AS P_SURNAME, DIEUTHINSI AS P_ADDRESS, DHMOS AS P_REGION,
    HMEROMHNIA_K AS P_DATE , DRASTHRIOTITA AS P_DRASTI,GENRE AS P_GENDER,
    USERN AS P_USERNAME, EPWNYMIA AS P_BRANDNAME, NOMIKI AS P_NOMIKI, AFM AS P_AFM, THLEFWNO AS P_PHONE,FAX AS P_FAX
    FROM PORTAL.APOPSI_COMM_OBD
    GROUP BY ONOMA,EPWNYMO ,DIEUTHINSI ,DHMOS ,USERN ,EPWNYMIA ,NOMIKI ,AFM ,THLEFWNO ,FAX,HMEROMHNIA_K,DRASTHRIOTITA,GENRE;
    CURSOR comm IS
    SELECT O.OBD_KWDIKOS, O.OBD_ONOMA, O.HMEROMHNIA_E, O.SYMB, O.LOC, P.P_INDX_ID
    FROM PORTAL.TMP_OBD O INNER JOIN PORTAL.TMP_COMM2 C ON C.ID = O.OBD_INDX INNER JOIN
    PORTAL.APOPSI_COMM_PELATES P ON C.NAME = P.P_NAME AND C.SURNAME = P.P_SURNAME AND C.PHONE = P.P_PHONE;
    BEGIN
    DELETE FROM PORTAL.TMP_PELATES;
    l_code1 := 0;
    l_indx1 := 0;
    l_code2 := 0;
    l_indx2 := 0;
    l_tmp1 := 0;
    comm_numEntries := 0; comm_numUpdates := 0; comm_numInserts := 0;
    lov_numEntries := 0; lov_numUpdates := 0; lov_numInserts := 0;
    pel_numEntries := 0; pel_numUpdates := 0; pel_numInserts := 0;
    p_tmp1 := 0; c_tmp1 := 0;
    OPEN lov;
    OPEN pelates;
    OPEN comm;
    LOOP
    FETCH lov INTO l_code1,l_comm1;
    EXIT WHEN lov%NOTFOUND;
    lov_numEntries := lov_numEntries + 1;
    SELECT COUNT(*) INTO l_tmp1 FROM PORTAL.APOPSI_COMM_COMM2_LOV WHERE L_CODE = TO_CHAR(l_code1) AND L_COMM = l_comm1;
    SELECT (MAX(L_INDX)+1) INTO l_indx1 FROM PORTAL.APOPSI_COMM_COMM2_LOV;
    IF l_tmp1 = 0 THEN
    lov_numInserts := lov_numInserts + 1;
    INSERT INTO PORTAL.APOPSI_COMM_COMM2_LOV(L_INDX,L_CODE,L_COMM) VALUES (l_indx1, TO_CHAR(l_code1), l_comm1);
    INSERT INTO PORTAL.TMP_LOV(L_INDX,L_CODE,L_COMM, L_INSERT) VALUES (l_indx1, TO_CHAR(l_code1), l_comm1,1);
    ELSE
    IF l_tmp1 = 1 then
    null;
    else
    lov_numUpdates := lov_numUpdates + 1;
    DELETE FROM PORTAL.APOPSI_COMM_COMM2_LOV WHERE L_CODE = TO_CHAR(l_code1);
    INSERT INTO PORTAL.APOPSI_COMM_COMM2_LOV(L_INDX,L_CODE,L_COMM) VALUES (l_indx1, TO_CHAR(l_code1), l_comm1);
    INSERT INTO PORTAL.TMP_LOV(L_INDX,L_CODE,L_COMM,L_INSERT) VALUES (l_indx1, TO_CHAR(l_code1), l_comm1,0);
    end if;
    END IF;
    END LOOP;
    LOOP
    FETCH pelates INTO p_name1,p_surname1,p_address1,p_region1,p_date1,p_gender1, p_drasti1, p_username1, p_brandname1, p_nomiki1 ,p_afm1, p_phone1,p_fax1;
    EXIT WHEN pelates%NOTFOUND;
    pel_numEntries := pel_numEntries + 1;
    SELECT (MAX(P_INDX_ID) + 1) INTO p_indx_id1 FROM PORTAL.APOPSI_COMM_PELATES;
    SELECT COUNT(*) INTO p_tmp1 FROM PORTAL.APOPSI_COMM_PELATES WHERE P_NAME = p_name1 AND P_SURNAME = p_surname1;
    IF p_tmp1 = 0 THEN
    pel_numInserts := pel_numInserts + 1;
    INSERT INTO PORTAL.APOPSI_COMM_PELATES (P_DRASTI,P_DATE,P_IDIOTITA,p_gender,P_INDX_ID,p_name,p_surname,p_address,p_region, p_username, p_brandname ,p_nomiki ,p_afm, p_phone,p_fax)
    VALUES (p_drasti1,p_date1,' ',p_gender1,P_INDX_ID1, p_name1,p_surname1,p_address1,p_region1, p_username1, p_brandname1 ,p_nomiki1 ,p_afm1, p_phone1,p_fax1);
    INSERT INTO PORTAL.TMP_PELATES (P_DRASTI,P_DATE,P_IDIOTITA,p_gender,P_INDX_ID, p_name,p_surname,p_address,p_region, p_username, p_brandname ,p_nomiki ,p_afm, p_phone,p_fax, P_INSERT)
    VALUES (p_drasti1,p_date1,' ',p_gender1,P_INDX_ID1, p_name1,p_surname1,p_address1,p_region1, p_username1, p_brandname1 ,p_nomiki1 ,p_afm1, p_phone1,p_fax1, 1);
    ELSE
    if p_tmp1 = 1 THEN
    NULL;
    ELSE
    pel_numUpdates := pel_numUpdates + 1;
    DELETE FROM PORTAL.APOPSI_COMM_PELATES WHERE P_NAME = p_name1 AND P_SURNAME = p_surname1;
    INSERT INTO PORTAL.APOPSI_COMM_PELATES (P_DRASTI,P_DATE,P_IDIOTITA,p_gender,P_INDX_ID,p_name,p_surname,p_address,p_region, p_username, p_brandname ,p_nomiki ,p_afm, p_phone,p_fax)
    VALUES (p_drasti1,p_date1,' ',p_gender1, P_INDX_ID1, p_name1,p_surname1,p_address1,p_region1, p_username1, p_brandname1 ,p_nomiki1 ,p_afm1, p_phone1,p_fax1);
    INSERT INTO PORTAL.TMP_PELATES (P_DRASTI,P_DATE,P_IDIOTITA,p_gender,P_INDX_ID, p_name,p_surname,p_address,p_region, p_username, p_brandname ,p_nomiki ,p_afm, p_phone,p_fax, P_INSERT)
    VALUES (p_drasti1,p_date1,' ',p_gender1,P_INDX_ID1, p_name1,p_surname1,p_address1,p_region1, p_username1, p_brandname1 ,p_nomiki1 ,p_afm1, p_phone1,p_fax1,0);
    END IF;
    END IF;
    END LOOP;
    LOOP
    FETCH comm INTO OBD_KWDIKOS1,OBD_ONOMA1,HMEROMHNIA_E1,SYMB1,LOC1, P_INDX_ID2;
    EXIT WHEN comm%NOTFOUND;
    comm_numEntries := comm_numEntries + 1;
    SELECT COUNT(*) INTO c_tmp1 FROM PORTAL.APOPSI_COMM_OBD_LOCAL O WHERE O.OBD_CODE = OBD_KWDIKOS1 AND
    O.OBD_NAME = OBD_onoma1 AND O.OBD_DATE = HMEROMHNIA_E1 AND O.PEL_ID = P_INDX_ID2;
    IF c_tmp1 = 0 THEN
    comm_numInserts := comm_numInserts + 1;
    INSERT INTO PORTAL.APOPSI_COMM_OBD_LOCAL
    VALUES (OBD_KWDIKOS1,OBD_ONOMA1,HMEROMHNIA_E1,SYMB1,LOC1, P_INDX_ID2);
    ELSE
    if c_tmp1 = 1 THEN
    NULL;
    ELSE
    comm_numUpdates := comm_numUpdates + 1;
    DELETE FROM PORTAL.APOPSI_COMM_OBD_LOCAL O WHERE O.OBD_CODE = OBD_KWDIKOS1 AND
    O.OBD_NAME = OBD_onoma1 AND O.OBD_DATE = HMEROMHNIA_E1 AND O.PEL_ID = P_INDX_ID2;
    INSERT INTO PORTAL.APOPSI_COMM_OBD_LOCAL
    VALUES (OBD_KWDIKOS1,OBD_ONOMA1,HMEROMHNIA_E1,SYMB1,LOC1, P_INDX_ID2);
    END IF;
    END IF;
    END LOOP;
    CLOSE comm;
    CLOSE lov;
    CLOSE pelates;
    END RETRIEVE_OBD_DATA4;
    /

    Well, to answer myself it turns out that cursors of the form "OPEN - LOOP - EXIT WHEN %NOTFOUND - END LOOP - CLOSE" are not converted to the bulk-collect equivalent, as "FOR rec IN (cursor) LOOP" ones are from 10g R2 onwards (tests below use 11.1.0.6.0).
    Implicit (1 fetch):
    DECLARE
        i INTEGER := 0;
    BEGIN
        FOR r IN ( SELECT * FROM scott.emp )
        LOOP
            i := i + r.empno;
        END LOOP;
    END;
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           1
    Fetch        0      0.00       0.00          0          0          0           0
    total        2      0.00       0.00          0          0          0           1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 88 
    SQL ID : 5vms4mrz8j7wd
    SELECT *
    FROM
    SCOTT.EMP
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch 1 0.00 0.00 0 7 0 14
    total        3      0.00       0.00          0          7Explicit (15 fetches):
    DECLARE
        i INTEGER := 0;
        CURSOR c_emp IS
            SELECT * FROM scott.emp;
        r_emp c_emp%ROWTYPE;
    BEGIN
        OPEN c_emp;
        LOOP
            FETCH c_emp INTO r_emp;
            EXIT WHEN c_emp%NOTFOUND;
            i := i + r_emp.empno;
        END LOOP;
        CLOSE c_emp;
    END;
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           1
    Fetch        0      0.00       0.00          0          0          0           0
    total        2      0.00       0.00          0          0          0           1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 88 
    SQL ID : 4ay6mhcbhvbf2
    SELECT *
    FROM
    SCOTT.EMP
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.01       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch 15 0.00 0.00 0 20 0 14
    total       17      0.01       0.00          0         20          0          14or another example:
    DECLARE
        i INTEGER := 0;
    BEGIN
        FOR r IN ( SELECT 1 n FROM dual CONNECT BY rownum < 999 )
        LOOP
            i := i + r.n;
        END LOOP;
    END;
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           1
    Fetch        0      0.00       0.00          0          0          0           0
    total        2      0.00       0.00          0          0          0           1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 88 
    SQL ID : caf6v3bbkvqkk
    SELECT 1 N
    FROM
    DUAL CONNECT BY ROWNUM < 999
    call     count       cpu    elapsed       disk      query    current        rows
    Parse        1      0.00       0.00          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch 10 0.00 0.00 0 0 0 998
    total       12      0.00       0.00          0          0          0         998So in code like the OP's example procedure it is explicit cursors that perform the extra fetch and not implicit ones, and this could help explain why implicit cursors perform better.

  • WAAS EMAP Optimization issue

    Dear Team,
    In WAAS Setup we are not seeing any Optimized EMAPI connection and below error is showing in Alarm section  for all Edge WAE devices.
    Wansecure encountered a peering service configuration error: ssl peering service configuration mismatch with peer device id 88:f0:31:b3:6e:c8. The following protocol acceleration can fail: SSL-AO, ICA (if using Wansecure) and Encrypted MAPI.
    We have verified the SSL peering configuration between Edge and core device and not found found any mismatch between them. Please suggest how we can resolve this issue.
    Regards,
    Ranjith

    Hi,
    Try the following on all the WAAS devices participating in the flow. (Core + edge)'
    WAAS #sh acc wansecure
    Accelerator Licensed Config State Operational State
    wansecure Yes Enabled Running
    WAN Secure:
    Accelerator Config Item Mode Value
    SSL AO User enabled
    Secure store User enabled
    Peer SSL version User default
    Peer cipher list User configured
    Peer cert User default <<<<Should be same for all devices
    Peer cert verify User enabled
    Follow the doc below.
    http://www.cisco.com/c/en/us/td/docs/app_ntwk_services/waas/waas/v501/configuration/guide/cnfg/policy.html#wp1156757
    Hope that resolves the issue.
    Regards,
    Abhishek
    CCIES 35269

  • Optimization Issues - Jrockit with JBoss

    Hi,
    I am quiet new here. forgive if my questions are dump.
    We are having a problem on JBoss(Version: 5.0.0.CR2) server running with Jrockit(Version :build R27.6.5-32_o-121899-1.6.0_14-20091001-2107-windows-ia32)
    The server hang frequently.
    was trying to optimize the JVM settings.
    Initial JVM setting was : set JAVA_OPTS=%JAVA_OPTS% -Xms768m -Xmx1024m -XX:MaxPermSize=256m
    Later have chaged to
    set JAVA_OPTS=%JAVA_OPTS% -Xms1024m -Xmx1024m -Xns512m -XXkeepAreaRatio=3 -XXsetGC:genparcon -XXcompactSetLimit:10200 -Xverbose:gc -Xverboselog:jbossVerboseLog.txt
    But getting some page fault errors as shown below,
    +[INFO ][memory ] Warning: Your computer has generated 31142 page faults during the last garbage collection.+
    +[INFO ][memory ] If you find this swapping problematic, please consider running JRockit with a smaller heap.+
    After few hours it started Throwing OutOfMemory: allocLargeObjectOrArray
    So I included the XXtlaSize in jvm settings,
    set JAVA_OPTS=%JAVA_OPTS% -Xms1024m -Xmx1024m -Xns512m -XXlargeObjectLimit=70k -XXtlaSize=70k -XXminBlockSize=96k -XXkeepAreaRatio=3 -XXsetGC:genparcon -XXcompactSetLimit:10200  -Xverbose:gc -Xverboselog:jbossVerboseLog.txt
    But server become very unstable, server restarted automatically.
    Now we revert all the changes to initial settings.
    Please suggest me in case if i need to look into something else.
    Thanks in advance.
    Karthik

    Hi,
    I am quiet new here. forgive if my questions are dump.
    We are having a problem on JBoss(Version: 5.0.0.CR2) server running with Jrockit(Version :build R27.6.5-32_o-121899-1.6.0_14-20091001-2107-windows-ia32)
    The server hang frequently.
    was trying to optimize the JVM settings.
    Initial JVM setting was : set JAVA_OPTS=%JAVA_OPTS% -Xms768m -Xmx1024m -XX:MaxPermSize=256m
    Later have chaged to
    set JAVA_OPTS=%JAVA_OPTS% -Xms1024m -Xmx1024m -Xns512m -XXkeepAreaRatio=3 -XXsetGC:genparcon -XXcompactSetLimit:10200 -Xverbose:gc -Xverboselog:jbossVerboseLog.txt
    But getting some page fault errors as shown below,
    +[INFO ][memory ] Warning: Your computer has generated 31142 page faults during the last garbage collection.+
    +[INFO ][memory ] If you find this swapping problematic, please consider running JRockit with a smaller heap.+
    After few hours it started Throwing OutOfMemory: allocLargeObjectOrArray
    So I included the XXtlaSize in jvm settings,
    set JAVA_OPTS=%JAVA_OPTS% -Xms1024m -Xmx1024m -Xns512m -XXlargeObjectLimit=70k -XXtlaSize=70k -XXminBlockSize=96k -XXkeepAreaRatio=3 -XXsetGC:genparcon -XXcompactSetLimit:10200  -Xverbose:gc -Xverboselog:jbossVerboseLog.txt
    But server become very unstable, server restarted automatically.
    Now we revert all the changes to initial settings.
    Please suggest me in case if i need to look into something else.
    Thanks in advance.
    Karthik

  • Sun C 5.9 optimization issue (-xO3 and higher)?

    It looks like the C compiler is sometimes a bit too enthusiastic about removing obsolete code at optimization level -xO3 and higher (32-bit memory model).
    I would expect the following piece of code to break from the loop after 137 iterations, exploiting the integer overflow and 'wrarp-around' of time_now.
    This happens only up to and including optimization level 2.
    It looks like at -xO3 and higher, the compiler thinks that since time_now starts at a positive value and is always incremented with a positive value,
    the if statement with the break can be optimized away.
    #include <stdio.h>
    #define SECONDS_PER_DAY 86400
    #define APPROX_SECONDS_PER_HALFYEAR 15768000
    #define NR_HALF_YEARS 1280
    void
    main(int argc, char *argv[])
    register int i;
    long time_now;
    for (i=0, time_now=2*SECONDS_PER_DAY; i < NR_HALF_YEARS; ++i, time_now+=APPROX_SECONDS_PER_HALFYEAR){
    if (time_now < 0){ /* passed 2037 ... */
    break;
    fprintf(stderr, "%d %ld\n", i, time_now);
    }

    The optimizer is not too enthusiastic. The program depends on behavior that is undefined by the C standard.
    The C standard does not define the results of signed integer overflow. (Unsigned integer wrap-around is required.) Signed integer overflow can wrap around as you expect, could generate a trap, or possibly have some other behavior. Programs that depend on a particular result are not portable.
    The optimizer, particularly at high optimization levels, takes advantage of undefined or unspecified behavior to produce faster code. Unportable programs can display different behavior at different optimization levels, just as they can display different behavior using different compilers.

  • Calc optimization issue with commit blocks

    Hi there,
    How can we know the right commit block interval setting to the database?
    and though i am doing parallel calc its forcing to do the calc in serial mode due to some dependencies.
    Can anyone suggest me the best way to remove the dependencies!!!
    I am having lot of member formulas in my calc so its forcing the topdown cal mode though i am doing bottumup....
    How to avoid all these dependencies...or do u think topdown should be fine?

    It is better to use the default setting in the transactions tab.
    you can understand the behaviour of thses settings in the below link
    http://download.oracle.com/docs/cd/E10530_01/doc/epm.931/html_eashelp/frameset.htm?dbdprptr.htm
    Mostly dense formula calculations will have calc dependencies and force the serial calculations.
    Tag all the dense formula members dynamic calc wherever possible.
    If any thing needs to be calculated in the batch, calculate by fixing Lev0 sparse combinations.
    In the Database rollup, Use Calcdim of sparse dimensions only.

  • Fix optimization issue

    DELETING MY PREVIOUS POST AND SIMPLIFYING IT
    i have a member A (stored) FORMULA=B/D/E
    B(stored)
    HIEARCHY
    Z
    A+ FORMULA=B/D/E
    B+ NO FORMULA
    L+
    M+
    NOW MY CALC SCRIPT
    FIX(VERSIONONE,SOURCE,@LEVMBRS(ENTITY,0),@LEVMBRS(LOB,O),FORECAST,2013)
    FIX(JAN)
    IF(NOT @ISMBR(ENTITY1) AND NOT @ISMBRS(LOB1))
    B=D*(PRIOR( A ) * E*F
    ENDIF
    A;
    ENDFIX
    FIX(FEB)
    IF(NOT @ISMBR(ENTITY1))
    B=D*(PRIOR( A )* E*F
    ENDIF
    A;
    ENDFIX.......SO ON ANOTHER 10 FIX FOR MAR,APR TO DEC
    tHIS ABOVE SCRIPT WORKS CORRECT
    NOW I WANTED TO POTIMIZE IT
    SO I WROTE IT IN THIS WAY
    FIX(JAN)
    IF(NOT @ISMBR(ENTITY1))
    B=D*(PRIOR(*A*)* E*F
    ENDIF
    A;
    ENDFIX
    FIX(FEB:DEC)
    IF(NOT @ISMBR(ENTITY1))
    B=D*(PRIOR(A)* E*F
    ENDIF
    A;
    ENFIX
    DOES NOT WORK ,thE RESULTS ARE AS FOLLOWS
    WHEN I FIRST RAN THE SCRIPT.....DATA IS POPULATED FOR ONLY JAN MONTH
    SECOND TIME DATA IS POPULATED FOR ONLY FEB
    THIRD TIME ONLY MAR................
    SO MY SCRIPT IS CALCULATING B WHICH DEPENDS ON PRIOR( A ),LATER CALCS A WHICH IS BASED ON B.wHEN I AM FIXING (FEB:DEC)IT IS CALCULATING FEB:DEC AT THE SAME TIME SO MISSING THE ORDER OF CALCULATION .
    I WANT MY CALCULATION TO HAPPEN IN ORDER ......
    ANY SUUGGESTIONS
    Edited by: lakshmi on Aug 20, 2012 5:07 PM

    Hi,
    Not completely sure of following, but you can try it.
    Make A simply as stored without any formula.
    FIX(JAN)
    IF(NOT @ISMBR(ENTITY1))
    B=D*(PRIOR(*A*)* E*F
    ENDIF
    A=B/D/E ;
    ENDFIX
    FIX(FEB:DEC)
    IF(NOT @ISMBR(ENTITY1))
    B=D*(PRIOR(A)* E*F
    ENDIF
    A =B/D/E;
    ENDFIX
    And howz about using @MDSHIFT(A,-1,"Period") instead of @PRIOR(A)?
    Also I think it is due to calculation in cell mode,thought not sure.
    You can also try using a member/variable to store prior value of A and then use the member/variable later in calculations.
    Hope this helps. Guru's can help us to understand this more properly.
    Regards
    -SM

  • Inline functions in C, gcc optimization and floating point arithmetic issues

    For several days I really have become a fan of Alchemy. But after intensive testing I have found several issues which I'd like to solve but I can't without any help.
    So...I'm porting an old game console emulator written by me in ANSI C. The code is working on both gcc and VisualStudio without any modification or crosscompile macros. The only platform code is the audio and video output which is out of scope, because I have ported audio and video witin AS3.
    Here are the issues:
    1. Inline functions - Having only a single inline function makes the code working incorrectly (although not crashing) even if any optimization is enabled or not (-O0 or O3). My current workarround is converting the inline functions to macros which achieves the same effect. Any ideas why inline functions break the code?
    2. Compiler optimizations - well, my project consists of many C files one of which is called flash.c and it contains the main and exported functions. I build the project as follows:
    gcc -c flash.c -O0 -o flash.o     //Please note the -O0 option!!!
    gcc -c file1.c -O3 -o file1.o
    gcc -c file2.c -O3 -o file2.o
    ... and so on
    gcc *.o -swc -O0 -o emu.swc   //Please note the -O0 option again!!!
    mxmlc.exe -library-path+=emu.swc --target-player=10.0.0 Emu.as
    or file in $( ls *.o ) //Removes the obj files
        do
            rm $file
        done
    If I define any option different from -O0 in gcc -c flash.c -O0 -o flash.o the program stops working correctly exactly as in the inline funtions code (but still does not crash or prints any errors in debug). flash has 4 static functions to be exported to AS3 and the main function. Do you know why?
    If I define any option different from -O0 in gcc *.o -swc -O0 -o emu.swc  the program stops working correctly exactly as above, but if I specify -O1, -O2 or O3 the SWC file gets smaller up to 2x for O3. Why? Is there a method to optimize all the obj files except flash.o because I suspect a similar issue as when compilling it?
    3. Flating point issues - this is the worst one. My code is mainly based on integer arithmetic but on 1-2 places it requires flating point arithmetic. One of them is the conversion of 16-bit 44.1 Khz sound buffer to a float buffer with same sample rate but with samples in the range from -1.0 to 1.0.
    My code:
    void audio_prepare_as()
        uint32 i;
        for(i=0;i<audioSamples;i+=2)
            audiobuffer[i] = (float)snd.buffer[i]/32768;
            audiobuffer[i+1] = (float)snd.buffer[i+1]/32768;
    My audio playback is working perfectly. But not if using the above conversion and I have inspected the float numbers - all incorrect and invalid. I tried other code with simple floats - same story. As if alchemy refuses to work with floats. What is wrong? I have another lace whre I must resize the framebuffer and there I have a float involved - same crap. Please help me?
    Found the floating point problem: audiobuffer is written to a ByteArray and then used in AS. But C floats are obviously not the same as those in AS3. Now the floating point is resolved.
    The optimization issues remain! I really need to speed up my code.
    Thank you in advice!

    Dear Bernd,
    I am still unable to run the optimizations and turn on the inline functions. None of the inline functions contain any stdli function just pure asignments, reads, simple arithmetic and bitwise operations.
    In fact, the file containing the main function and those functions for export in AS3 did have memset and memcpy. I tried your suggestion and put the code above the functions calling memset and memcpy. It did not work soe I put the code in a header which is included topmost in each C file. The only system header I use is malloc.h and it is included topmost. In other C file I use pow, sin and log10 from math.h but I removed it and made the same thing:
    //shared.h
    #ifndef _SHARED_H_
    #define _SHARED_H_
    #include <malloc.h>
    static void * custom_memmove( void * destination, const void * source, unsigned int num ) {
      void *result; 
      __asm__("%0 memmove(%1, %2, %3)\n" : "=r"(result) : "r"(destination), "r"(source), "r"(num)); 
      return result; 
    static void * custom_memcpy ( void * destination, const void * source, unsigned int num ) { 
      void *result; 
      __asm__("%0 memcpy(%1, %2, %3)\n" : "=r"(result) : "r"(destination), "r"(source), "r"(num)); 
      return result; 
    static void * custom_memset ( void * ptr, int value, unsigned int num ) { 
      void *result; 
      __asm__("%0 memset(%1, %2, %3)\n" : "=r"(result) : "r"(ptr), "r"(value), "r"(num)); 
      return result; 
    static float custom_pow(float x, int y) {
        float result;
      __asm__("%0 pow(%1, %2)\n" : "=r"(result) : "r"(x), "r"(y));
      return result;
    static double custom_sin(double x) {
        double result;
      __asm__("%0 sin(%1)\n" : "=r"(result) : "r"(x));
      return result;
    static double custom_log10(double x) {
        double result;
      __asm__("%0 log10(%1)\n" : "=r"(result) : "r"(x));
      return result;
    #define memmove custom_memmove
    #define memcpy custom_memcpy
    #define memset custom_memset
    #define pow custom_pow
    #define sin custom_sin
    #define log10 custom_log10 
    #include "types.h"
    #include "macros.h"
    #include "m68k.h"
    #include "z80.h"
    #include "genesis.h"
    #include "vdp.h"
    #include "render.h"
    #include "mem68k.h"
    #include "memz80.h"
    #include "membnk.h"
    #include "memvdp.h"
    #include "system.h"
    #include "loadrom.h"
    #include "input.h"
    #include "io.h"
    #include "sound.h"
    #include "fm.h"
    #include "sn76496.h" 
    #endif /* _SHARED_H_ */ 
    It still behave the same way as if nothing was changed (works incorrectly - displays jerk which does not move, whereby the image is supposed to move)
    As I am porting an emulator (Sega Mega Drive) I use manu arrays of function pointers for implementing the opcodes of the CPU's. Could this be an issue?
    I did a workaround for the floating point problem but processing is very slow so I hear only bzzt bzzt but this is for now out of scope. The emulator compiled with gcc runs at 300 fps on a 1.3 GHz machine, whereby my non optimized AVM2 code compiled by alchemy produces 14 fps. The pure rendering is super fast and the problem lies in the computational power of AVM. The frame buffer and the enulation are generated in the C code and only the pixels are copied to AS3, where they are plotted in a BitmapData. On 2.0 GHz Dual core I achieved only 21 fps. Goal is 60 fps to have smooth audio and video. But this is offtopic. After all everything works (slow) without optimization, and I would somehow turn it on. Suggestions?
    Here is the file with the main function:
    #include "shared.h"
    #include "AS3.h"
    #define FRAMEBUFFER_LENGTH    (320*240*4)
    static uint8* framebuffer;
    static uint32  audioSamples;
    AS3_Val sega_rom(void* self, AS3_Val args)
        int size, offset, i;
        uint8 hardware;
        uint8 country;
        uint8 header[0x200];
        uint8 *ptr;
        AS3_Val length;
        AS3_Val ba;
        AS3_ArrayValue(args, "AS3ValType", &ba);
        country = 0;
        offset = 0;
        length = AS3_GetS(ba, "length");
        size = AS3_IntValue(length);
        ptr = (uint8*)malloc(size);
        AS3_SetS(ba, "position", AS3_Int(0));
        AS3_ByteArray_readBytes(ptr, ba, size);
        //FILE* f = fopen("boris_dump.bin", "wb");
        //fwrite(ptr, size, 1, f);
        //fclose(f);
        if((size / 512) & 1)
            size -= 512;
            offset += 512;
            memcpy(header, ptr, 512);
            for(i = 0; i < (size / 0x4000); i += 1)
                deinterleave_block(ptr + offset + (i * 0x4000));
        memset(cart_rom, 0, 0x400000);
        if(size > 0x400000) size = 0x400000;
        memcpy(cart_rom, ptr + offset, size);
        /* Free allocated file data */
        free(ptr);
        hardware = 0;
        for (i = 0x1f0; i < 0x1ff; i++)
            switch (cart_rom[i]) {
         case 'U':
             hardware |= 4;
             break;
         case 'J':
             hardware |= 1;
             break;
         case 'E':
             hardware |= 8;
             break;
        if (cart_rom[0x1f0] >= '1' && cart_rom[0x1f0] <= '9') {
            hardware = cart_rom[0x1f0] - '0';
        } else if (cart_rom[0x1f0] >= 'A' && cart_rom[0x1f0] <= 'F') {
            hardware = cart_rom[0x1f0] - 'A' + 10;
        if (country) hardware=country; //simple autodetect override
        //From PicoDrive
        if (hardware&8)        
            hw=0xc0; vdp_pal=1;
        } // Europe
        else if (hardware&4)    
            hw=0x80; vdp_pal=0;
        } // USA
        else if (hardware&2)    
            hw=0x40; vdp_pal=1;
        } // Japan PAL
        else if (hardware&1)      
            hw=0x00; vdp_pal=0;
        } // Japan NTSC
        else
            hw=0x80; // USA
        if (vdp_pal) {
            vdp_rate = 50;
            lines_per_frame = 312;
        } else {
            vdp_rate = 60;
            lines_per_frame = 262;
        /*SRAM*/   
        if(cart_rom[0x1b1] == 'A' && cart_rom[0x1b0] == 'R')
            save_start = cart_rom[0x1b4] << 24 | cart_rom[0x1b5] << 16 |
                cart_rom[0x1b6] << 8  | cart_rom[0x1b7] << 0;
            save_len = cart_rom[0x1b8] << 24 | cart_rom[0x1b9] << 16 |
                cart_rom[0x1ba] << 8  | cart_rom[0x1bb] << 0;
            // Make sure start is even, end is odd, for alignment
            // A ROM that I came across had the start and end bytes of
            // the save ram the same and wouldn't work.  Fix this as seen
            // fit, I know it could probably use some work. [PKH]
            if(save_start != save_len)
                if(save_start & 1) --save_start;
                if(!(save_len & 1)) ++save_len;
                save_len -= (save_start - 1);
                saveram = (unsigned char*)malloc(save_len);
                // If save RAM does not overlap main ROM, set it active by default since
                // a few games can't manage to properly switch it on/off.
                if(save_start >= (unsigned)size)
                    save_active = 1;
            else
                save_start = save_len = 0;
                saveram = NULL;
        else
            save_start = save_len = 0;
            saveram = NULL;
        return AS3_Int(0);
    AS3_Val sega_init(void* self, AS3_Val args)
        system_init();
        audioSamples = (44100 / vdp_rate)*2;
        framebuffer = (uint8*)malloc(FRAMEBUFFER_LENGTH);
        return AS3_Int(vdp_rate);
    AS3_Val sega_reset(void* self, AS3_Val args)
        system_reset();
        return AS3_Int(0);
    AS3_Val sega_frame(void* self, AS3_Val args)
        uint32 width;
        uint32 height;
        uint32 x, y;
        uint32 di, si, r;
        uint16 p;
        AS3_Val fb_ba;
        AS3_ArrayValue(args, "AS3ValType", &fb_ba);
        system_frame(0);
        AS3_SetS(fb_ba, "position", AS3_Int(0));
        width = (reg[12] & 1) ? 320 : 256;
        height = (reg[1] & 8) ? 240 : 224;
        for(y=0;y<240;y++)
            for(x=0;x<320;x++)
                di = 1280*y + x<<2;
                si = (y << 10) + ((x + bitmap.viewport.x) << 1);
                p = *((uint16*)(bitmap.data + si));
                framebuffer[di + 3] = (uint8)((p & 0x1f) << 3);
                framebuffer[di + 2] = (uint8)(((p >> 5) & 0x1f) << 3);
                framebuffer[di + 1] = (uint8)(((p >> 10) & 0x1f) << 3);
        AS3_ByteArray_writeBytes(fb_ba, framebuffer, FRAMEBUFFER_LENGTH);
        AS3_SetS(fb_ba, "position", AS3_Int(0));
        r = (width << 16) | height;
        return AS3_Int(r);
    AS3_Val sega_audio(void* self, AS3_Val args)
        AS3_Val ab_ba;
        AS3_ArrayValue(args, "AS3ValType", &ab_ba);
        AS3_SetS(ab_ba, "position", AS3_Int(0));
        AS3_ByteArray_writeBytes(ab_ba, snd.buffer, audioSamples*sizeof(int16));
        AS3_SetS(ab_ba, "position", AS3_Int(0));
        return AS3_Int(0);
    int main()
        AS3_Val romMethod = AS3_Function(NULL, sega_rom);
        AS3_Val initMethod = AS3_Function(NULL, sega_init);
        AS3_Val resetMethod = AS3_Function(NULL, sega_reset);
        AS3_Val frameMethod = AS3_Function(NULL, sega_frame);
        AS3_Val audioMethod = AS3_Function(NULL, sega_audio);
        // construct an object that holds references to the functions
        AS3_Val result = AS3_Object("sega_rom: AS3ValType, sega_init: AS3ValType, sega_reset: AS3ValType, sega_frame: AS3ValType, sega_audio: AS3ValType",
            romMethod, initMethod, resetMethod, frameMethod, audioMethod);
        // Release
        AS3_Release(romMethod);
        AS3_Release(initMethod);
        AS3_Release(resetMethod);
        AS3_Release(frameMethod);
        AS3_Release(audioMethod);
        // notify that we initialized -- THIS DOES NOT RETURN!
        AS3_LibInit(result);
        // should never get here!
        return 0;

  • SAP BPC 7.5 NW SP09 - full optimize never ends. Job can not be stopped

    Hi experts,
    we sent a full optimize process in order to compress an application but it never finished.
    I noticed that through BW transaction RSPC the process chain: Full optimization stops in "Collapse box" step and become red.
    so the cube were locked and can not be used. we checked through in BW TE SM50 that process is in "Running status" 
    I tried to stop it through BW TE SM37 but  can not be done due its status.
    Please any idea how to stopped it and how solved full optimization issue?
    thanks

    Try cancelling it from SM50 (with core or without core). Never run Full Optimization for compression, run Light Optimization if you need to compress a cube.
    Gersh

  • Issue with Subtyping and Autoboxing

    Hi,
    I have a problem with subtyping and autoboxing. Can anybody please help me to know the reason for this.
    public class GenericSubType<T extends Integer> {
        T iVal;
        public GenericSubType(T t){
            iVal = t;
        public static void main(String args[]) {
            GenericSubType<Integer> gst = new GenericSubType<Integer>(30);
            System.out.println("gst.iVal = " + gst.iVal);
    The above code is giving a compile time error saying that:
    GenericSubType.java:8: cannot find symbol
    symbol : method valueOf(int)
    location : bound of type variable T
    GenericSubType<Integer>gst = new GenericSubType<Integer>(30);
    Fatal Error: Unable to find method valueOf
    If we change <T extends Integer> to <T extends Number> in the class declaration the compile time error will be resolved and the program works as expected.
    class GenericSubType<T extends Number> {
      // Body of the class...
    }Can anybody tell what is the problem with the original code and how it is affecting?
    Expecting a justifiable reason.
    Regards,
    Thomas.

    Why shouldn't I compile unnecessary statements? You only would see a warning on unnecessary cast here ;)
    The OP instead is introducing a generic parameter having a final class as bound, which pointless as for any instance the generic argument could be nothing but that very class. Why would anyone need it?
    I'm quite sure it's a javac bug (or maybe optimization issue in javac) in the combined play of autoboxing and generics. I'd say it tries to autobox the int into a T without taking into account that T always is Integer. But T obviously has no valueOf(int) method.

Maybe you are looking for

  • Can I have the same library on two different computers

    I have my iTunes library on a external drive linked to my work computer. Can I link it to my home computer too?

  • Microsoft Office 2013 Outlook errors due to it wants to connect to MS exchange

    Every time I try to load Outlook 2013 it gives me an error: The connection to Microsoft Exchange is unavailable. Outlook must be online or connected to complete this action and when I click on it, it keeps going in a loop. What to do to correct it wi

  • Order of Input-Variables in Web Template

    Hi, I have a problem with Web Templates. I have prepared Web Templates in BI 7.0 WAD in which I am displaying multiple queries. Some input variables are common to all queries and some are only in the main query. I have set the correct order of the in

  • Logoff redirect not working

    Hi, we need to redirect users after the logoff to a diffferent page. I found Note 696294 and added the following values: ume.logoff.redirect.url=http://www.google.com ume.logoff.redirect.silent=false After a restart i logged in and logged of. as a re

  • How Get the users machine name

    I need to develop the intranet ticketing system on SharePoint. When user create the ticket I need to fetch their machine name as well. I have search that lot of solution given for ASP. Net with c#. But I have use JavaScript for the application. if an