XML Metadata import - Memory Problem
I am trying to import metadata through "extras->XML Import\Export" Option giving the path to XML file (file:D:\RSAD_C07.xml). It has parsed the file and saved some objects but half-way it stopped with the error that I pasted below. Its an 8GB RAM server and we are not running any other processed. CPU utilization is around 15%. I am not able to understand why this is happening. Please advise me on what to do.
ERROR DETAILS
Memory low. Leave the transaction before taking a break!
Message no. 00072
Diagnosis
The memory on your application server is running low.
System Response
You are exclusively using one of the few work processes running on the application server. So that this does not hinder the other users too much, the work process is released if you do not work with it for a few minutes. The system terminates the transaction, causing you to lose data that you previously entered.
Procedure
Continue to work as normal and exit the transaction before you take a long break.
Hi Ankush,
i am not too familiar with the XML part, but anyway this does not appear to be the problem. What i understand is that you are using a frontend dialog process for uploading the XML stuff. in this case it actually does not matter how much RAM you have installed in total, because the single dialog work process has only a fraction of total RAM assigned as working memory. hence my recommendation is to cut the XML file into smaller packets for import.
maybe you can tell us details once you are successfully done with the case?
THX & regards,
Harry
Similar Messages
-
Is XML Publisher causing shared memory problem..?
Hi Experts,
Since this week, many of the Requisition/PO are erroring out with the below errors or similar to these errors:
- ORA-04031: unable to allocate 15504 bytes of shared memorny ("sharedpool","PO_REQAPPROVAL_INIT1APPS","PL/SQL MPCODE","BAMIMA: Bam Buffer")
ORA-06508: PL/SQL: could not find program unit being called.
-Error Name WFENG_COMMIT_INSIDE
3146: Commit happened in activity/function
'CREATE_AND_APPROVE_DOC:LAUNCH_PO_APPROVAL/PO_AUTOCREATE_DOC.LAUNCH_PO_APPROVAL'
Process Error: ORA-06508: PL/SQL: could not find program unit being called
Few days back we were getting heap memory error for one of the XML Publisher report.
I heard that XML Publisher requires lot of memory for sources/features,So I want to know whether XML Publisher can be one of the cause for memory problem to occur or this shared memory is not related with XML Publisher sources at all.
Please advice.
Many thanks..
Suman
Edited by: suman.g on 25-Nov-2009 04:03Hi Robert,
Thanks for your quick reply...
Apps version: 11.5.10.2
database version: 9.2.0.8.0
As I am a beginner in this so dont know much about this.. Can you please guide me on this.
DBAs has increased the shared memory and problem has resolved but here I am more concrened whether the XML Publisher was or can be one od the cause for shared memory problem. Is there any way to check that or this occurs randomly and we can not check this.
Please advice something. -
Data Services 12.2.3.0 BODI-1112015 Adapter metadata import failed
Hi Experts,
I am using Data Services 12.2.3.0.
I have an issue in importing functions through 'Adapter' type datastore into Data Services. I can open the datastore and see the list of functions available, but when I try to import them, I get the error BODI-1112015 Adapter metadata import failed.
The setup and the errors are as below.
The adapter datastore is setup as below.
I built a new keystore called clientkeystore.jks in the ..\bin.Then created the .CSR file, and then imported the signed chained (I believe it's chained certificate) certificate of the server hosting the wsdl into the keystore.
Thanks for the post http://scn.sap.com/thread/1589052 . After changing the metadata character set to utf-8, I can see a list of functions when I open this New_Datastore in Data Services. It proves that the setup for the datastore has no problem parsing the wsdl file and give me the list of functions in it.
However, the error appears when I try to import them.
Error is:
Adapter metadata import failed. Error message: (BODI-1112015) Error parsing the <TheFunctionToBeImported> included in the XML sent by the adapter to represet a function <Error importing XML Schema from file <adapter_schema_in.xsd>:<XML parser failed: Error <Schema Representation Constraint: Namespace 'http://result.form.v81.api.keysurvey.com' is referenced without <import> declaration> at line <13>, char <46> in < < xsd:schema xmln:xsd=http://www.w3.org/2001/XMLSchema" xmln:tns="http://result.form.v81.api.keystore.com" xmlns:diws="http://businessobjects.com/diwebservice" targetnamespace="http://www.businessobjects.com/diwebservice"><xsd:import namespace='http://v81.api.keysurvey.com' schemaLocation='C:\Program Files\Business Objects\BusinessObjects Data Services\ext\webservice\FormResultManagemenetgetRespondentsgetRespondents0.xsd'/>
<xsd: import namespace='http://result.form.v81.api.keysurvey.com' schemaLocation='C:\Program Files\Business Objects\BusinessObjects Data Services\ext\webservice\FormResultManagemenetgetRespondentsgetRespondents2.xsd'/> ........
When comparing it with the wsdl file(as below), it is worth nothing that the schemaLocation is changed to a local directory under C:\Program Files\Business Objects\BusinessObjects Data Services\ext\webservice while it was not the case in wsdl. The schemaLocation is on the server.
I am wondering if the redirection from the server specified in the wsdl file to the local directory has caused this error. The error 'namespace is reference without <import>' is apparently wrong as the <import> is just there.
Or there is any other reason behind this.
I appreciate any adivce or question from you!I have reached the exact same error as this post http://scn.sap.com/thread/3190403
The error is
[Mon Jun 18 23:14:28 2012] [error] ..\..\src\core\deployment\conf_builder.c(876) Specifyingservices and modules directories using axis2.xml but path of the library directory is not present
[Mon Jun 18 23:14:28 2012] [error] ..\..\src\core\deployment\conf_builder.c(261) Processing transport senders failed, unable to continue
[Mon Jun 18 23:14:28 2012] [error] ..\..\src\core\deployment\dep_engine.c(939) Populating Axis2 Configuration failed
[Mon Jun 18 23:14:28 2012] [error] ..\..\src\core\deployment\conf_init.c(195) Loading deployment engine failed for client repository C:\Program Files (x86)\SAP BusinessObjects\Data Services\ext\webservice-c\axis2.xml
As it is identified as an version problem, this issue is not going to be investigated any further.
As an alternative, can try to use Oracle 11g SOAP_API.sql. -
Memory Problem with SEt and GET parameter
hi,
I m doing exits. I have one exit for importing and another one for changing parameter.
SET PARAMETER exit code is ....
*data:v_nba like eban-bsart,
v_nbc like eban-bsart,
v_nbo like eban-bsart.
v_nbc = 'CAPX'.
v_nbo = 'OPEX'.
v_nba = 'OVH'.
if im_data_new-werks is initial.
if im_data_new-knttp is initial.
if im_data_new-bsart = 'NBC' or im_data_new-bsart = 'SERC' or im_data_new-bsart = 'SERI'
or im_data_new-bsart = 'SER' or im_data_new-bsart = 'SERM' or im_data_new-bsart = 'NBI'.
set parameter id 'ZC1' field v_nbc.
elseif im_data_new-bsart = 'NBO' or im_data_new-bsart = 'NBM' or im_data_new-bsart = 'SERO'.
set parameter id 'ZC2' field v_nbo.
elseif im_data_new-bsart = 'NBA' or im_data_new-bsart = 'SERA'.
set parameter id 'ZC3' field v_nba.
endif.
endif.
endif. *
and GET PARAMETER CODE IS....
get parameter id 'ZC1' field c_fmderive-fund.
get parameter id 'ZC2' field c_fmderive-fund.
get parameter id 'ZC3' field c_fmderive-fund.
FREE MEMORY ID 'ZC1'.
FREE MEMORY ID 'ZC2'.
FREE MEMORY ID 'ZC3'.
In this code i m facing memory problem.
It is not refreshing the memory every time.
So plz give me proper solution.
Its urgent.
Thanks
RanveerHi,
I suppose you are trying to store some particular value in memory in one program and then retieve it in another.
If so try using EXPORT data TO MEMORY ID 'ZC1'. and IMPORT data FROM MEMORY ID 'ZC1'.
To use SET PARAMETER/GET PARAMETER the specified parameter name should be in table TPARA. Which I don't think is there in your case.
Sample Code :
Data declarations for the function codes to be transferred
DATA : v_first TYPE syucomm,
v_second TYPE syucomm.
CONSTANTS : c_memid TYPE char10 VALUE 'ZCCBPR1'.
Move the function codes to the program varaibles
v_first = gv_bdt_fcode.
v_second = sy-ucomm.
Export the function codes to Memory ID
EXPORT v_first
v_second TO MEMORY ID c_memid. "ZCCBPR1 --- Here you are sending the values to memory
Then retrieve it.
Retrieve the function codes from the Memory ID
IMPORT v_first TO v_fcode_1
v_second TO v_fcode_2
FROM MEMORY ID c_memid. "ZCCBPR1
FREE MEMORY ID c_memid. "ZCCBPR1
After reading the values from memory ID free them your problem should be solved.
Thanks
Barada
Edited by: Baradakanta Swain on May 27, 2008 10:20 AM -
XML,CLOB AND MEMORY : CONSUMED BUT NOT RELEASED !!!
Hi,
I'm working with XMLGEN Package and XSLT Processor to produce XML Document on Oracle 8.1.7.3 server, I use 9i XML and Java packages.
I'm facing the following BIG MEMORY problem :
Environment : I must generate an XML parsed with an XSL document of 80Mo (nearly 22 000 rows),
as XMLGEN is on DOM parsing method, I extract my XML by 500 Rows and I loop until 22 000 rows. I use DBMS_JOB with jobs who read and execute export each minute.
The algorithme is :
keeprow=22000
while keeprow>0
Create 3 clob (DBMS_LOB Package) : one for XSL Sheet, one for XML and one for result
GetXML (XMLGEN Package)
Transform in XSL (XSL Processor)
Write to disk (UTL_FILE Package)
Free the 3 Clob ((DBMS_LOB Package))
keeprow =keeprow-500
loop
The problem : The process start at 250Mo ot total memory and END at 1000 Mo of used memory and NEVER RELEASE 1 ko of memory.
So often I get a JavaOutOfMemoryError (I've allocated 1Go Ram to my JAVA process).
Any help will be very very appreciated !
My derived problem is 22 000 rows is not enough I've some export of 200 000 rows to do (And I cannot allocate 10 Go of RAM !!!)
Following My PL/SQL Code.
Regards
Fred
PROCEDURE DO_EXPORT_XML(
P_JOB_ID JOB_PARAMETRE.JOB_ID%TYPE,
P_JOB_ID_ORDRE JOB_PARAMETRE.JOB_ID_ORDRE%TYPE,
P_CLE_UP UPLOADREQ_TEMP.ID%TYPE,
P_LOAD_OR_DELOAD VARCHAR2)
IS
L_FILE_NAME JOB_PARAMETRE.JOB_FILE_NAME_DEST%TYPE;
L_REP_NAME JOB_PARAMETRE.JOB_REP_NAME_DEST%TYPE;
L_FILE_STYLESHEET JOB_PARAMETRE.JOB_STYLESHEET%TYPE;
L_VERSION_PDM JOB_PARAMETRE.JOB_VPDM%TYPE;
P_SELECT varchar2(4000):='';
P_CURSOR varchar2(4000):='';
l_filehandler_out UTL_FILE.FILE_TYPE;
--Variable pour le traitement par lot de 500
L_NBROW_TODO_ATONCE number := 500;
L_NBROW_MIN number := 1;
L_NBROW_MAX number := -1;
L_NBROWKEEPTODO number := -1;
xslString CLOB := null;
res number default -1;
xmlString CLOB := null;
li_ret number := 0;
li_faitle number := 0;
amount integer:= 255;
li_loop integer := 0;
charString varchar2(255);
ls_deload varchar2(255) default '';
ls_SQL varchar2(4000) default '';
ls_temp_file varchar2(255) default '';
text_file_dir varchar2(32) := 'e:\temporarydir';
l_par xmlparser.parser;
l_xml xmldom.domdocument;
l_pro xslprocessor.processor;
l_xsl xslprocessor.stylesheet;
docfragnode xmldom.DOMNode;
docfrag xmldom.DOMDocumentFragment;
l_parsedclob clob := null;
l_amount binary_integer := 32767;
l_ligne varchar2(32767);
l_offset number default 1;
l_pos number default null;
l_pos2 number default null;
l_lobsize number default null;
l_memsize number default 1073741824; --1024 Mo
l_mempipo number default 0;
type rc is ref cursor;
l_cursor rc;
cursor TEMPLATE is select UNSPSC,1 as NB from UPLOADREQ_TEMP where 1=2;
c1rec TEMPLATE%rowtype;
BEGIN
l_mempipo:=setmaxmemorysize(l_memsize);
dbms_lob.createtemporary(l_parsedclob, true, dbms_lob.session);
dbms_lob.createtemporary(xmlstring, true, dbms_lob.session);
--return the good select
GET_SELECT_TO_EXPORT_XML(P_JOB_ID , P_JOB_ID_ORDRE , P_CLE_UP , P_SELECT,P_CURSOR, P_LOAD_OR_DELOAD);
SELECT JOB_FILE_NAME_DEST,JOB_REP_NAME_DEST,JOB_STYLESHEET
INTO L_FILE_NAME,L_REP_NAME,L_FILE_STYLESHEET
FROM JOB_PARAMETRE
WHERE JOB_ID =P_JOB_ID AND JOB_ID_ORDRE=P_JOB_ID_ORDRE;
l_filehandler_out := UTL_FILE.FOPEN(text_file_dir, L_FILE_NAME, 'w',l_amount);
--Return XSL Sheet in a clob : cause of memory consumed but not released
xslString := METACAT.load_a_file( 1,L_FILE_STYLESHEET);
open l_cursor for P_CURSOR;
LOOP
fetch l_cursor into c1rec;
exit when l_cursor%notfound;
L_NBROW_MIN := 1;
L_NBROW_MAX := 0;
L_NBROWKEEPTODO:=c1rec.NB;
LOOP
begin
if(L_NBROWKEEPTODO > L_NBROW_TODO_ATONCE) THEN
begin
L_NBROW_MAX:= L_NBROW_TODO_ATONCE + L_NBROW_MAX;
L_NBROWKEEPTODO:= L_NBROWKEEPTODO - L_NBROW_TODO_ATONCE;
end;
else
begin
L_NBROW_MAX:= L_NBROW_MAX + L_NBROWKEEPTODO;
L_NBROWKEEPTODO:=0;
end;
end if;
--on ouvre le fichier de risultats
ls_SQL:= P_SELECT || ' AND ( ROWNUM BETWEEN ' || L_NBROW_MIN || ' AND ' || L_NBROW_MAX || ' ) and UNSPSC=''' || c1rec.UNSPSC || '''';
ls_temp_file := c1rec.UNSPSC || '_' || L_FILE_NAME;
L_NBROW_MIN:=L_NBROW_TODO_ATONCE + L_NBROW_MIN;
--CAT_AUTOLOAD.JOB_ADD_TRACE (P_JOB_ID,'UPLOAD REQUISITE : Export donnies REQUETE ' || to_char(li_loop), ls_SQL,'',0,0);
xmlgen.resetOptions;
xmlgen.setErrorTag('ERROR_RESULT');
xmlgen.setRowIdAttrName('NAH');
xmlgen.setRowIdColumn('NAH');
xmlgen.setEncodingTag('ISO-8859-1');
xmlgen.useNullAttributeIndicator(false);
if(xmlString is not null) then
dbms_lob.open(xmlString,dbms_lob.lob_readwrite);
l_lobsize:= dbms_lob.Getlength(xmlString);
if(l_lobsize>0) then
dbms_lob.erase(xmlString,l_lobsize,1);
end if;
dbms_lob.close(xmlString);
dbms_lob.freetemporary(xmlString);
dbms_lob.createtemporary(xmlstring, true, dbms_lob.session);
end if;
--Return XML in a clob : cause of memory consumed but not released
xmlString := xmlgen.getXML(ls_SQL,0);
l_par := xmlparser.newparser;
xmlparser.parseclob(l_par, xslString);
l_xsl := xslprocessor.newstylesheet(xmlparser.getdocument(l_par),null);
xmlparser.parseclob(l_par, xmlString);
l_xml := xmlparser.getdocument(l_par);
l_pro := xslprocessor.newprocessor;
xslprocessor.showWarnings(l_pro, true);
xslprocessor.setErrorLog(l_pro, text_file_dir || substr(ls_temp_file,0,length(ls_temp_file)-4) || '_logerreur.XML');
if(l_parsedclob is not null) then
dbms_lob.open(l_parsedclob,dbms_lob.lob_readwrite);
l_lobsize:= dbms_lob.Getlength(l_parsedclob);
if(l_lobsize>0) then
dbms_lob.erase(l_parsedclob,l_lobsize,1);
end if;
dbms_lob.close(l_parsedclob);
dbms_lob.freetemporary(l_parsedclob);
dbms_lob.createtemporary(l_parsedclob, true, dbms_lob.session);
end if;
--Return XML Processed with XSL in a clob : cause of memory consumed but not released
xslprocessor.processxsl(l_pro,l_xsl,l_xml,l_parsedclob);
--release NOTHING
xmlparser.freeparser(l_par);
xslprocessor.freeprocessor(l_pro);
l_ligne:='';
l_offset :=1;
l_pos := null;
l_pos2 := null;
if(li_loop=0) then
begin
--on ouvre le fichier et on sauve l'entete + les donnies dedans.
l_pos:=dbms_lob.instr(l_parsedclob,'</DATA>');
if ( nvl(l_pos,0) > 0 ) then
loop
if(l_pos-1>l_amount + l_offset ) then
l_ligne:=dbms_lob.SUBSTR(l_parsedclob,l_amount,l_offset);
UTL_FILE.PUT(l_filehandler_out,l_ligne);
UTL_FILE.fflush(l_filehandler_out);
l_offset:=l_offset+l_amount;
else
l_ligne:=dbms_lob.SUBSTR(l_parsedclob,l_pos-1 -l_offset ,l_offset);
UTL_FILE.PUT(l_filehandler_out,l_ligne);
UTL_FILE.fflush(l_filehandler_out);
exit;
end if;
end loop;
else
EXIT;
end if;
end;
else
--on met les donnies donc on ne repete pas le debut
begin
l_pos:=dbms_lob.instr(l_parsedclob,'<ITEM');
if ( nvl(l_pos,0) > 0 ) then
l_pos2:=dbms_lob.instr(l_parsedclob,'</DATA>');
if ( nvl(l_pos2,0) > 0 ) then
loop
if(l_pos + l_amount <= l_pos2 -1 ) then
l_ligne:=dbms_lob.SUBSTR(l_parsedclob,l_amount,l_pos);
UTL_FILE.PUT(l_filehandler_out,l_ligne);
UTL_FILE.fflush(l_filehandler_out);
l_pos:=l_pos +l_amount;
else
l_ligne:=dbms_lob.SUBSTR(l_parsedclob,l_pos2 -1 -l_pos,l_pos);
UTL_FILE.PUT(l_filehandler_out,l_ligne);
UTL_FILE.fflush(l_filehandler_out);
exit;
end if;
end loop;
else
exit;
end if;
end if;
end;
end if;
li_loop:=li_loop + 1 ;
--UTL_FILE.FCLOSE(l_filehandler_in);
JAVA_GC();
EXIT WHEN L_NBROWKEEPTODO=0;
Exception
when others then
begin
-- IF(utl_file.is_open(l_filehandler_in)) THEN
-- utl_file.fclose( l_filehandler_in);
-- END IF;
IF(utl_file.is_open(l_filehandler_out)) THEN
utl_file.fclose( l_filehandler_out);
END IF;
RAISE_APPLICATION_ERROR(-20001,'File with errors');
end;
END;
END LOOP;
END LOOP;
CLOSE l_cursor;
if ( xmlString is not null ) then
dbms_lob.open(xmlString,dbms_lob.lob_readwrite);
l_lobsize:= dbms_lob.Getlength(xmlString);
if(l_lobsize>0) then
dbms_lob.erase(xmlString,l_lobsize,1);
end if;
dbms_lob.close(xmlString);
dbms_lob.freeTemporary( xmlString);
end if;
if(l_parsedclob is not null) then
dbms_lob.open(l_parsedclob,dbms_lob.lob_readwrite);
l_lobsize:= dbms_lob.Getlength(l_parsedclob);
if(l_lobsize>0) then
dbms_lob.erase(l_parsedclob,l_lobsize,1);
end if;
dbms_lob.close(l_parsedclob);
dbms_lob.freetemporary(l_parsedclob);
end if;
UTL_FILE.NEW_LINE(l_filehandler_out);
l_ligne:='</DATA></CATALOG>';
UTL_FILE.PUT(l_filehandler_out,l_ligne);
UTL_FILE.FCLOSE(l_filehandler_out);
EXCEPTION
when others then
begin
IF(utl_file.is_open(l_filehandler_out)) THEN
utl_file.fclose( l_filehandler_out);
END IF;
end;
END;
******************************Thank you for the info - I had no idea I was puing myself in danger by cutting it so close. Since your post I have moved my iphoto library to an external drive and now have 165 GB of space on my HD. Following this I have 2 questions.
1. Since my available HD space was reduced by the size of the photo download it seems logical that the download is somewhere on my HD still. Is there a place where these photos might be hiding on my HD even though they are not available on the iphoto library?
2. I was able to recover the .jpg files which are fine. I also recovered the .mov files but they have been compromised. I am hoping I can find the originals still on the HD somewhere. If not, do you have any suggestions for recovery methods or programs? I have not used the SD card since the incident so I should be able to attempt another recovery to salvage the .mov files if there is an alternative method/program available.
Thanks again! -
Parsing a XML file using Jdom-Problem.
Hi all,
I am reposting it as I was told to format the code and send it again.
I am trying to parse a xml file using a jdom java code.This code works fine if I remove xmlns attribute in the root element. (I get the expected result) .If the "xmlns" attribute is put in the xml as it should be then the parsing and retrieving returns null. Please tell me how to fix this issue.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Xml
<process name="CreateKBEntryService" targetNamespace="http://serena.com/CreateKBEntryService" suppressJoinFailure="yes" xmlns:tns="http://serena.com/CreateKBEntryService" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:nsxml0="http://localhost:8080/axis/services/CreateKBEntryService" xmlns:nsxml1="http://DefaultNamespace" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
<partnerLinks>
<partnerLink name="client" partnerLinkType="tns:CreateKBEntryService" myRole="CreateKBEntryServiceProvider"/>
<partnerLink name="CreateKBEntryPartnerLink" partnerLinkType="nsxml0:CreateKBEntryLink" partnerRole="CreateKBEntryProvider"/>
</partnerLinks>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
Java:
import java.io.*;
import java.util.*;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
public class sample1 {
public static void main(String[] args) throws Exception {
// create a XML parser and read the XML file
SAXBuilder oBuilder = new SAXBuilder();
Document oDoc = oBuilder.build(new File("**xml file location**"));
Element root = oDoc.getRootElement();
System.out.println(root.getName());
String tgtns= root.getAttributeValue("targetNamespace");
System.out.println("tgt ns "+ tgtns);
List list= root.getChildren("partnerLinks");
Iterator it1= list.iterator();
System.out.println("Iterator 1 - "+list.size());
while(it1.hasNext()){
Element partnerlinks = (Element)it1.next();
List list2= partnerlinks.getChildren("partnerLink");
System.out.println("iterator 2 - "+list2.size());
}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Result:
Without Xmlns in xml file(Expected and correct output)
process
tgt ns http://serena.com/CreateKBEntryService
Iterator 1 - 1//expected and correct result that comes when I remove xmlns attribute from xml
iterator 2 - 2
Result with xmlns:
process
tgt ns http://serena.com/CreateKBEntryService
Iterator 1 - 0 //instead of 0 should return 1LOL
This is what you get for working 12 hours straight....
I changed:
xmlObject["mydoc"]["modelglue"]["event-handlers"]["event-handler"][i].xmlAttrib utes["name"]<br>
to:
#mydoc["modelglue"]["event-handlers"]["event-handler"][i].xmlAttrib utes["name"]#<br>
xmlObject is the name of my xml object in memory, and then you reference from the root of the xml doc down the chain.
Sorry for the inconvenience,
Rich -
How to keep XML file in memory for specified period ?
How to keep XML file in memory for specified period or forever, I have 5 applications running on WebSphere I wants to use XML file for all the applications. I mean when one apllication is not using XML file still I wants to keep it in memory ...
Thanx in advance ,Hello,you can create a DocumentManager class,
here is my solution in the past...
you can use static Hashtable save the xml's Document,if one application want get
a appointed Document.first,you can find it from Hashtable,if can't find it ,you
can create it and put into Hashtable,if the words fail to express the meaning,sorry,my english is limited
package com.foresee.xfiles.util;
import java.util.*;
import org.w3c.dom.*;
import org.apache.log4j.*;
import com.foresee.xfiles.common.*;
import com.foresee.xfiles.server.exception.*;
import com.foresee.xfiles.util.*;
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
public final class DocumentManager {
private static Category m_log = Category.getInstance(DocumentManager.class.getName());
static {
PropertyConfigurator.configure(Configurator.getLCF());
public DocumentManager() {
//synchronized
public static synchronized Document getTransitionDoc(String path) throws SchemaCheckOutException{
Document m_TransitionDoc;
m_TransitionDoc = (Document)TransitionDoc.get(path);
if (m_TransitionDoc == null){
XmlHelper m_xh = new XmlHelper();
try{
m_TransitionDoc = m_xh.getDocument(path);
}catch (SchemaCheckOutException se){
m_log.error("������������������������"+path+"����:"+se.getUserMsg());
throw se;
TransitionDoc.put(path,m_TransitionDoc);
return m_TransitionDoc ;
public static synchronized Document getLogicCheckDoc(String path) throws SchemaCheckOutException{
Document m_LogicCheckDoc;
m_LogicCheckDoc = (Document)LogicCheckDoc.get(path);
if (m_LogicCheckDoc == null){
XmlHelper m_xh = new XmlHelper();
try{
m_LogicCheckDoc = m_xh.getDocument(path);
}catch (SchemaCheckOutException se){
m_log.error("������������������������"+path+"����:"+se.getUserMsg());
throw se;
LogicCheckDoc.put(path,m_LogicCheckDoc);
return m_LogicCheckDoc ;
public static Hashtable TransitionDoc = new Hashtable();
public static Hashtable LogicCheckDoc = new Hashtable(); -
Out of memory problem using the API
Hi all,
I need your assistance, we are working with CDB 10.2 making searches and retrieving the documents with all their attributes.
In our actual scenario we have a single user (which represents an application) accessing CDB. This user use several persistent sessions simultaneously. I mean, several thousands of final users connect to an application that uses one user of CDB to connect to CDB with several persistent sessions.
To simulate this scenario we wrote java code that open five threads and make several searches (requesting all the attributes) using the same user on cdb.
Retrieving a considerable amount of data found on the search (~5000), we found a “Out of memory” problem when we made these tests:
- 5 threads obtaining 100 documents (and all their attributes) / search
- 1 thread obtaining 500 documents (and all their attributes) / search
- Also we have same problem if we make several searches with less results
We suppose it’s a configuration or code issue so we ask for your assistance and experience to solve it.
Thanks for your help,
Dani
import java.sql.Connection;
import oracle.ifs.examples.api.constants.AttributeRequests;
import oracle.ifs.examples.api.util.CommonUtils;
import oracle.ifs.fdk.Attributes;
import oracle.ifs.fdk.ClientUtils;
import oracle.ifs.fdk.FdkConstants;
import oracle.ifs.fdk.FdkCredential;
import oracle.ifs.fdk.ManagersFactory;
import oracle.ifs.fdk.NamedValue;
import oracle.ifs.fdk.Options;
import oracle.ifs.fdk.SearchExpression;
import oracle.ifs.fdk.SearchManager;
import oracle.ifs.fdk.SimpleFdkCredential;
import oracle.jdbc.pool.OracleDataSource;
public class Prueba {
public static void main(String args[]) {
Thread thread = new BasicThread1();
Thread thread1 = new BasicThread1();
Thread thread2 = new BasicThread1();
Thread thread3 = new BasicThread1();
Thread thread4 = new BasicThread1();
thread.start();
thread1.start();
thread2.start();
thread3.start();
thread4.start();
class BasicThread1 extends Thread {
public void run() {
ManagersFactory session = null;
try {
System.out.println(this.getName() + "-->init");
session = getSession();
SearchManager sManager = session.getSearchManager();
SearchExpression srchExpr = new SearchExpression(Attributes.SIZE,
new Integer(20000000), FdkConstants.OPERATOR_LESS_THAN);
NamedValue[] res = null;
for (int i = 0; i < 100000; i++) {
res = sManager.search(srchExpr, basicSearchOptions2,
AttributeRequests.DOCUMENT_CATEGORY_ATTRIBUTES);
System.out.println(this.getName()+" --> fin sin error: " + res.length);
} catch (Throwable t) {
t.printStackTrace();
System.out.println("<--"+this.getName());
} finally {
CommonUtils.bestEffortLogout(session);
static NamedValue[] basicSearchOptions2 = new NamedValue[] {
ClientUtils.newNamedValue(
Options.MULTILEVEL_FOLDER_RESTRICTION,
Boolean.TRUE),
ClientUtils.newNamedValue(Options.SEARCH_FOR_DOCUMENTS,
Boolean.TRUE),
ClientUtils.newNamedValue(Options.SEARCH_FOR_FOLDERS,
Boolean.FALSE),
ClientUtils.newNamedValue(Options.RETURN_COUNT,
new Integer(500)) //<<Maximo nº de elementos
private static ManagersFactory getSession() throws Exception {
OracleDataSource ods = new OracleDataSource();
ods.setURL("URL");
Connection conn = ods.getConnection();
FdkCredential credential = new SimpleFdkCredential("USER","PSW");
ManagersFactory session = ManagersFactory.login(credential,
"SERVER");
return session;
}re-Post
-
Report (uses LDB's) giving dump due to memory problem
Hi,
I have a report which is giving dump in production due to memory problem.
Memory is increased from basis part,but still getting same error.
the report uses Logical DataBases.
Can anyone suggest solution to solve this problem.
regards
MallikHi Amit,
thanks for ur quick reply and ur idea "make changes in development and write the logic to read records in chunks".
I have n't worked on LDB's till now.So i Don't know how I can read the data in chunks from LDB's.
Can u Plz give some idea how to read data in chunks.
Iam also sending the code,if possible ,plz go thru it and give me some idea.
Hope u will help me.
CODE.
REPORT ZAROP028
ABLES: PROJ, " Project definition
PRPS_R, " WBS element
PRPS, " WBS elements
TJ02T, " System Status Values
TCJ1, " Project Types
JEST, " Active System Status
COSP1, " cost totals - external postings
COSS1, " cost totals - internal postings
COVP11, " Line Items by Prd & Doc Header
COVP12, " Line Items by Prd & Doc Header
BHDGD, " Page heading table.
AUFK, " Order Master Data for WBS (LDB)
ANEP, " Asset line item
COBRB, "Distribution Rules Settlement Ru
SETHIER, "Hierarchy Structure
TKA02, "Controlling Area Assignment
CEPC, "Profit Center Master Data
PSDYPD, "Dummy struct for GET proj late
PSDYPR, "Dummy struct for GET PRPS_R late
PSDYNP. "Dummy struct for GET AUFK late
CONSTANTS:
C_E TYPE C VALUE 'E',
C_I TYPE C VALUE 'I',
C_N TYPE C VALUE 'N',
C_X TYPE C VALUE 'X',
C_Y TYPE C VALUE 'Y',
C_NE(2) TYPE C VALUE 'NE',
C_EQ(2) TYPE C VALUE 'EQ',
C_USD(3) TYPE C VALUE 'USD',
C_04(2) TYPE C VALUE '04',
C_I0046(5) TYPE C VALUE 'I0046'
various working storage
DATA:
W_TXT04(4) TYPE C. " make status uppercase
DATA: ACTIVE(1) TYPE C VALUE 'A', " type for status_flag
INACTIVE(1) TYPE C VALUE 'I', " type for status_flag
STATUS_FLAG(1) TYPE C VALUE 'I', " wbs active or inactive?
INACTIVEDT LIKE SY-DATUM, " inactive date for wbs
REC_FLAG TYPE C VALUE 'N', " records retrieved?
DAYS_INACTIVE TYPE I, " days wbs has been inac
W_LOWINACT TYPE I, " smallest inactive days
WBS_CNT TYPE I, " cnt for wbs in status
W_AUC_COST TYPE P DECIMALS 2, " unsettled auc cost
W_VNAME LIKE PRPS_R-VNAME. " venture number storage
DATA: BEGIN OF ITAB OCCURS 0, "MELI-5F2KMH
COMPCODE LIKE PROJ-VBUKR, " company code
PLANT LIKE PROJ-WERKS, " plant
PROJECT LIKE PROJ-PSPID, " project
NAME LIKE PROJ-POST1, " project description
DINACT TYPE I, " days proj inactive
PRCTR LIKE PROJ-PRCTR, " profit center
SETID LIKE SETHIER-SETID, " level 2 pc hier
DESCRIPT LIKE SETHEADERT-DESCRIPT,
VERNA LIKE PROJ-VERNA, " person responsible
AUC TYPE P DECIMALS 2, " AUC unsettled amount
END OF ITAB.
DATA: BEGIN OF I_INACT OCCURS 0,
STAT LIKE JEST-STAT,
INACT LIKE JEST-INACT,
END OF I_INACT.
DATA: EQ_FLAG TYPE C, " system status flag
NE_FLAG TYPE C. " system status flag
TYPES: BEGIN OF T_COSTS,
PSPID LIKE PROJ-PSPID,
BUDAT LIKE COVP11-BUDAT,
END OF T_COSTS.
DATA: I_PROJ LIKE PROJ OCCURS 0 WITH HEADER LINE,
I_PRPS_R LIKE PRPS_R OCCURS 0 WITH HEADER LINE,
I_COSTS TYPE T_COSTS OCCURS 0 WITH HEADER LINE.
DATA: W_RECORDS TYPE I.
DATA: FOUND_FLAG TYPE C. " CHAD-4PRPDE
DATA: BEGIN OF I_HIER OCCURS 0. "FEAT-5BNRRP
INCLUDE STRUCTURE SETHIER. "FEAT-5BNRRP
DATA: END OF I_HIER. "FEAT-5BNRRP
RANGES: R_TJ02T FOR TJ02T-ISTAT.
DATA: W_LVL2 LIKE SETHIER-SETID. "MELI-5F2KMH
SELECTION-SCREEN BEGIN OF BLOCK PROJECT WITH FRAME TITLE TEXT-B01.
PARAMETERS: P_BUDAT LIKE COVP11-BUDAT,
DAYINACT(3) TYPE N DEFAULT '090'.
SELECTION-SCREEN SKIP. "FEAT-5BNRRP
PARAMETERS: P_PC-SET LIKE CEPC-KHINR OBLIGATORY "FEAT-5BNRRP
DEFAULT 'SCH_STREAM'. "FEAT-5BNRRP
SELECTION-SCREEN END OF BLOCK PROJECT.
SELECTION-SCREEN BEGIN OF BLOCK SORT WITH FRAME TITLE TEXT-B02.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(13) TEXT-C01.
SELECTION-SCREEN POSITION 15.
PARAMETERS: P_PLANT RADIOBUTTON GROUP SORT DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(13) TEXT-C03. "FEAT-5BNRRP
SELECTION-SCREEN POSITION 15.
PARAMETERS: P_PRCTR RADIOBUTTON GROUP SORT. "FEAT-5BNRRP
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(13) TEXT-C04.
SELECTION-SCREEN POSITION 15.
PARAMETERS: P_DAYS RADIOBUTTON GROUP SORT.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK SORT.
AT SELECTION-SCREEN OUTPUT.
PERFORM USER_PARM_INIT.
AT SELECTION-SCREEN.
PERFORM CHECK_PROJ_CRITERIA.
START-OF-SELECTION.
PERFORM BUILD_PC_HIER USING P_PC-SET.
Project Definition *
GET PROJ.
MOVE-CORRESPONDING PROJ TO I_PROJ. "MELI-5F2KMH
APPEND I_PROJ. "MELI-5F2KMH
CLEAR I_PROJ.
WBS element table
GET PRPS_R.
MOVE-CORRESPONDING PRPS_R TO I_PRPS_R.
APPEND I_PRPS_R.
CLEAR I_PRPS_R.
GET all order and cost objects associated with order and elements
GET AUFK.
GET COSP1.
CHECK COSP1-WRTTP EQ C_04. " check if value type '04'
Get last date that the wbselement was updated and determine status
GET COVP11.
MOVE PROJ-PSPID TO I_COSTS-PSPID.
MOVE COVP11-BUDAT TO I_COSTS-BUDAT.
APPEND I_COSTS.
CLEAR I_COSTS.
Loop through Internal cost statements
GET COSS1.
CHECK COSS1-WRTTP EQ C_04. " if value type is 04
Get last date that the wbselement was updated and determine status
GET COVP12.
MOVE PROJ-PSPID TO I_COSTS-PSPID.
MOVE COVP12-BUDAT TO I_COSTS-BUDAT.
APPEND I_COSTS.
CLEAR I_COSTS.
END-OF-SELECTION.
PERFORM BUILD_TABLE.
DELETE ITAB WHERE DINACT < DAYINACT.
DESCRIBE TABLE ITAB LINES W_RECORDS.
IF W_RECORDS = 0.
MESSAGE I024.
ENDIF.
PERFORM WRITE_REPORT.
FORM CHECK_PROJ_CRITERIA *
This form verifies correct selection criteria has been entered from *
the selection screen inputs. If incorrect data has been entered the*
valid information messages are displayed. *
FORM CHECK_PROJ_CRITERIA.
check for either posting date or inactivity criteria but not both
IF NOT P_BUDAT IS INITIAL AND NOT DAYINACT IS INITIAL.
MESSAGE E119.
ENDIF.
IF NOT DAYINACT IS INITIAL. "check s/o day inactive
IF NOT DAYINACT <= 998.
MESSAGE E018.
ELSE.
INACTIVEDT = SY-DATUM - DAYINACT.
ENDIF.
if days inactive is initial set INACTIVEDT using the posting date
ELSE.
INACTIVEDT = P_BUDAT.
ENDIF.
ENDFORM. " CHECK_PROJ_CRITERIA
FORM GET_AUC_COSTS *
This form retrieves AUC costs for records based on AUFK2 where they *
meet project criteria. This pulls the unsettled amount on a AUC as *
a settlement receiver. *
FORM GET_AUC_COSTS USING F_OBJNR F_BUKRS.
CONSTANTS:
C_SETLEMENT_ANNUAL LIKE COBRB-PERBZ VALUE 'JHR', "Annual Settlement
C_DEP_AREA_STD LIKE ANEP-AFABE VALUE '01'. "Std depreciation
DATA: L_ANLC LIKE ANLC OCCURS 0 WITH HEADER LINE,
L_ANLCV LIKE ANLCV OCCURS 0 WITH HEADER LINE,
BEGIN OF L_COBRB OCCURS 0, "SRIN-6ZNEAR
ANLN1 LIKE COBRB-ANLN1,
ANLN2 LIKE COBRB-ANLN2,
END OF L_COBRB,
F_H_COST TYPE P DECIMALS 2.
SELECT ANLN1 ANLN2 FROM COBRB
INTO TABLE L_COBRB " SRIN-6ZNEAR
WHERE OBJNR = F_OBJNR
AND PERBZ = C_SETLEMENT_ANNUAL.
IF SY-SUBRC NE 0. " gary-463qbd
EXIT. " gary-463qbd
ENDIF. " gary-463qbd
LOOP AT L_COBRB. " gary-463qbd
CLEAR: F_H_COST.
SELECT SINGLE * FROM ANLC
INTO L_ANLC
WHERE BUKRS = F_BUKRS AND
ANLN1 = L_COBRB-ANLN1 AND
ANLN2 = L_COBRB-ANLN2 AND
GJAHR = SY-DATUM(4) AND
AFABE = C_DEP_AREA_STD AND
ZUJHR = '0000' AND
ZUCOD = '0000'.
IF SY-SUBRC = 0.
CALL FUNCTION 'FI_AA_VALUES_CALCULATE'
EXPORTING
I_ANLC = L_ANLC
IMPORTING
E_ANLCV = L_ANLCV.
F_H_COST = L_ANLCV-BCHWRT_LFD.
ENDIF.
ADD: F_H_COST TO W_AUC_COST.
ENDLOOP. " gary-463qbd
ENDFORM. " GET_AUC_COSTS
FORM CHECK_INACTIVE_DATE *
This form checks the computed inactive date based on the formal *
parameter DAYS_INACTIVE. If DAYS_INACTIVE is more current than the *
current lowest inactive date W_LOWINACT then W_LOWINACT is replaced *
with this value. *
FORM CHECK_INACTIVE_DATE USING DAYS_INACTIVE.
IF DAYS_INACTIVE < W_LOWINACT.
MOVE DAYS_INACTIVE TO W_LOWINACT.
ELSEIF W_LOWINACT EQ 0.
MOVE: DAYS_INACTIVE TO W_LOWINACT,
W_LOWINACT TO ITAB-DINACT.
ENDIF.
ENDFORM. " CHECK_INACTIVE_DATE
FORM build_table *
collect fields to the internal table ITAB *
FORM BUILD_TABLE.
SORT I_COSTS BY PSPID ASCENDING BUDAT DESCENDING.
LOOP AT I_PROJ.
CLEAR W_AUC_COST.
READ TABLE I_COSTS WITH KEY PSPID = I_PROJ-PSPID
BINARY SEARCH.
IF SY-SUBRC = 0.
ITAB-DINACT = SY-DATUM - I_COSTS-BUDAT.
ELSE.
ITAB-DINACT = SY-DATUM - I_PROJ-ERDAT.
ENDIF.
LOOP AT I_PRPS_R WHERE PSPHI = I_PROJ-PSPNR AND
BELKZ = 'X'.
IF NOT I_PRPS_R-IMPRF IS INITIAL.
PERFORM GET_AUC_COSTS USING I_PRPS_R-OBJNR
I_PRPS_R-PBUKR.
ELSE.
CONTINUE.
ENDIF.
ENDLOOP.
ITAB-COMPCODE = I_PROJ-VBUKR.
ITAB-PLANT = I_PROJ-WERKS.
ITAB-PROJECT = I_PROJ-PSPID.
ITAB-NAME = I_PROJ-POST1.
ITAB-PRCTR = I_PROJ-PRCTR.
ITAB-VERNA = I_PROJ-VERNA.
ITAB-AUC = W_AUC_COST.
IF ITAB-DINACT > DAYINACT.
PERFORM GET_HIER_INFO.
ENDIF.
APPEND ITAB.
CLEAR ITAB.
ENDLOOP.
ENDFORM. " BUILD_TABLE
FORM STATUS_CHECK *
Checks the active status of the project definition for the *
parameter values assigned. *
FORM STATUS_CHECK USING F_OBJNR.
begin of GARY-463QBD
CLEAR: I_INACT.
REFRESH: I_INACT.
MOVE: C_N TO EQ_FLAG,
C_Y TO NE_FLAG.
retrieve status for a given record
SELECT STAT INACT
INTO TABLE I_INACT
FROM JEST
WHERE OBJNR EQ F_OBJNR AND
INACT NE C_X.
sort internal status entered by user
SORT R_TJ02T BY OPTION DESCENDING.
check all current object statuses meet user entered criteria
LOOP AT R_TJ02T WHERE OPTION EQ C_NE.
check for user selected options
READ TABLE I_INACT WITH KEY STAT = R_TJ02T-LOW.
IF SY-SUBRC EQ 0.
MOVE C_N TO NE_FLAG.
EXIT.
ENDIF.
ENDLOOP.
LOOP AT R_TJ02T WHERE OPTION EQ C_EQ.
check for user selected options
READ TABLE I_INACT WITH KEY STAT = R_TJ02T-LOW.
IF SY-SUBRC EQ 0.
MOVE C_Y TO EQ_FLAG.
EXIT.
ENDIF.
ENDLOOP.
check for no statuses entered as EQ option
LOOP AT R_TJ02T WHERE OPTION EQ C_EQ.
EXIT.
ENDLOOP.
if so move c_y to eq_flag
IF SY-SUBRC NE 0.
MOVE C_Y TO EQ_FLAG.
ENDIF.
if both eq_flag or ne_flag are true(c_y) move true to valid_flag
IF ( EQ_FLAG EQ C_N OR
NE_FLAG EQ C_N ).
REJECT 'PRPS_R'.
ENDIF.
end of GARY-463QBD
ENDFORM. " STATUS_CHECK
Form WRITE_REPORT
FORM WRITE_REPORT.
IF P_PLANT EQ 'X'.
SORT ASCENDING BY ITAB-BUSAREA "FEAT-5BNRRP
SORT ITAB ASCENDING BY PLANT
PROJECT.
ELSEIF P_PRCTR EQ 'X'.
SORT ITAB ASCENDING BY PRCTR "FEAT-5BNRRP
PROJECT.
ELSE.
SORT ITAB ASCENDING BY DINACT
PROJECT.
ENDIF.
FORMAT COLOR COL_BACKGROUND INTENSIFIED ON.
"MELI-5F2KMH
LOOP AT ITAB. "MELI-5F2KMH
WRITE: / ITAB-COMPCODE,
9(4) ITAB-PLANT,
17(12) ITAB-SETID,
33(40) ITAB-DESCRIPT,
77(10) ITAB-PRCTR,
91(24) ITAB-PROJECT,
119(40) ITAB-NAME,
163(25) ITAB-VERNA,
192(15) ITAB-AUC CURRENCY C_USD,
211(8) ITAB-DINACT.
ENDLOOP.
ENDFORM. " WRITE_REPORT
Form USER_PARM_INIT
Initializes user parameter settings
FORM USER_PARM_INIT.
ENDFORM. " USER_PARM_INIT
At top of every page, generate Amoco-standard header.
TOP-OF-PAGE.
MOVE: '0' TO BHDGD-INIFL,
SY-LINSZ TO BHDGD-LINES,
SY-UNAME TO BHDGD-UNAME,
SY-REPID TO BHDGD-REPID,
SY-TITLE TO BHDGD-LINE1,
SPACE TO BHDGD-DOMAI,
SPACE TO BHDGD-SEPAR,
SPACE TO BHDGD-MIFFL.
IF P_PLANT EQ 'X'.
MOVE TEXT-H01 TO BHDGD-LINE2.
ELSE.
MOVE TEXT-H03 TO BHDGD-LINE2. "FEAT-5BNRRP
ENDIF.
temporarily clear sy-mandt to remove "europe" from header "FEAT-5BNRRP
DATA: W_MANDT LIKE SY-MANDT.
BHDGD-BUKRS = SPACE.
W_MANDT = SY-MANDT.
CLEAR SY-MANDT.
FORMAT COLOR COL_BACKGROUND INTENSIFIED OFF.
PERFORM BATCH-HEADING(RSBTCHH0).
FORMAT RESET.
reset sy-mandt "FEAT-5BNRRP
SY-MANDT = W_MANDT.
PERFORM PGH_WRITE_HEADING USING TEXT-003 INACTIVEDT. "MELI-5F2KMH
SKIP 1.
ULINE.
write heading info
FORMAT COLOR COL_TOTAL INTENSIFIED ON.
WRITE: /1(5)'CCode',
9(5)'Plant',
17(12)'Level 2 Node',
33(40)'Level 2 Node Description',
77(10)'Profit Ctr',
91(18)'Project Definition',
119(19)'Project Description',
163(18)'Person Responsible',
192(15)' AUC Unsettled',
211(13)'Days Inactive'.
end FEAT-5BNRRP
BEGIN FEAT-5BNRRP NEW FORMS
FORM BUILD_PC_HIER
FORM BUILD_PC_HIER USING SETID.
DATA: W_SETID LIKE SETHIER-SETID,
W_NEWSETID LIKE SETHIER-SETID.
CONCATENATE '0H' SETID INTO W_SETID.
CALL FUNCTION 'G_SET_GET_ID_FROM_NAME'
EXPORTING
SHORTNAME = W_SETID
TABNAME = 'GLPCT'
SETCLASS = '0106'
SUPRESS_POPUP = 'X'
OLD_SETID = W_NEWSETID
IMPORTING
NEW_SETID = W_NEWSETID.
CALL FUNCTION 'G_SET_TREE_IMPORT'
EXPORTING
CLIENT = SY-MANDT
LANGU = SY-LANGU
SETID = W_NEWSETID
TABNAME = 'GLPCT'
TABLES
SET_HIERARCHY = I_HIER
EXCEPTIONS
SET_NOT_FOUND = 1
ILLEGAL_FIELD_REPLACEMENT = 2
ILLEGAL_TABLE_REPLACEMENT = 3
OTHERS = 4.
CLEAR I_HIER.
ENDFORM.
FORM GET_HIER_INFO
FORM GET_HIER_INFO.
DATA: W_SETID LIKE SETHIER-SETID,
W_KHINR LIKE CEPC-KHINR,
W_INDEX TYPE I.
CLEAR: W_SETID,
W_KHINR,
W_INDEX.
DETERMINE PROFIT CENTER NODE
SELECT SINGLE KHINR
FROM CEPC
INTO W_KHINR
WHERE PRCTR EQ ITAB-PRCTR.
CONCATENATE '0106' I_PROJ-VKOKR W_KHINR
INTO W_SETID.
READ TABLE I_HIER WITH KEY
SETID = W_SETID.
IF SY-SUBRC EQ 0.
W_INDEX = SY-TABIX.
DO.
READ TABLE I_HIER INDEX W_INDEX.
IF W_INDEX = 0.
ITAB-SETID = 'Not Found'.
EXIT.
ENDIF.
IF I_HIER-LEVEL = 1.
ITAB-SETID = I_HIER-SETID+8(12).
ITAB-DESCRIPT = I_HIER-DESCRIPT.
EXIT.
ENDIF.
IF I_HIER-LEVEL = 2.
ITAB-SETID = I_HIER-SETID+8(12).
ITAB-DESCRIPT = I_HIER-DESCRIPT.
EXIT.
ENDIF.
W_INDEX = W_INDEX - 1.
ENDDO.
ELSE.
ITAB-SETID = 'Not Found'.
ENDIF.
ENDFORM.
END FEAT-5BNRRP NEW FORMS
*& Form PGH_WRITE_HEADING WR MELI-5F2KMH
FORM PGH_WRITE_HEADING USING L_V1 L_V2.
DATA: L_LINSZ LIKE SY-LINSZ.
DATA: L_TITLEL LIKE SY-TABIX.
DATA: L_START LIKE SY-TABIX.
DATA: L_DATE LIKE SY-DATUM.
DATA: L_FORMATTED_DATE(10) TYPE C.
DATA: L_TITLE(27) TYPE C.
MOVE L_V2 TO L_DATE.
WRITE L_DATE TO L_FORMATTED_DATE.
CONCATENATE L_V1 L_FORMATTED_DATE INTO L_TITLE
SEPARATED BY SPACE.
L_LINSZ = SY-LINSZ.
L_TITLEL = STRLEN( L_TITLE ).
L_START = ( L_LINSZ / 2 ) - ( L_TITLEL / 2 ) - 2.
NEW-LINE.
POSITION L_START.
WRITE: L_TITLE.
regards
Mallik -
Adapter metadata import failed
I get 'Adapter metadata import failed' error while trying to import a put operation in the Business Objects Data Services designer in the JMSADAPTER type datastore. The xsd file is in place but the error message says that 'File <ADAPTER_MESSAGE_SCHEMA.XSD> is not a valid XML schema. The XSD that I specified in the operation is of a different name, and am not able to figure out where an XSD for this name comes in.
The same job in the same repository happens to work with no errors on a different Job server.The error it gives is 'File <ADAPTER_MESSAGE_SCHEMA.xsd> is not a valid XML Schema specification.'
Edited by: ssharma6 on Apr 9, 2010 11:28 AMI have DI 11.7.3.2 and the error is almost the same, BODI-1112010 : metadata import failed, the service is define as:
http://clwlkd2:19080/.wowlink-services-router-http/services/IAlertPortTypePort
and the wsdl file is:
http://clwlkd2:19080/.wowlink-services-router-http/services/IAlertPortTypePort/wsdl/v1/alert/services/wowlink/woolworths/com/au/AlertService.wsdl
this service is not using http basic authentication, the security is inside every object.
Looks that DI probably is transparently following the HTTP redirect from
http://clwlkd2:19080/.wowlink-services-router-http/services/IAlertPortTypePort?wsdl
to:
http://clwlkd2:19080/.wowlink-services-router-http/services/IAlertPortTypePort/wsdl/v1/alert/services/wowlink/woolworths/com/au/AlertService.wsdl
Then when it attempts to resolve v1.alert.services.wowlink.woolworths.com.au.wsdl , it issues a request for:
http://clwlkd2:19080/.wowlink-services-router-http/services/ v1.alert.services.wowlink.woolworths.com.au.wsdl
instead issuing a request for:
http://clwlkd2:19080/.wowlink-services-router-http/services/IAlertPortTypePort/wsdl/v1/alert/services/wowlink/woolworths/com/au/v1.alert.services.wowlink.woolworths.com.au.wsdl
which is where the resource actually is.
Did someone see this redirection issue before? -
Edit in HD, memory problem?
Hi there,
Just starting for editing HD footage but wondering should I get more memory for computer because testing to editing a 15 min. footage when export only first 2-5 min. movie I got, the rest is a still image (only last freeze frame when reach 5 min.). After that, I've tried to cut the footage in 2 min. than export fine. Is that the memory problem? Please advice.
Thanks.Hi
a. Free space on Start-up Mac OS hard disk. How much ?
b. Is there any more hard disks ?
I have figured that my Mac works best with
• Macintosh HD / Mac OS and FinalCut
• Second internal HD - ALL Scratch and All material Audio/Photos etc. on this
Nothing to movie project on first one
alt
second HD as a FireWire - and IMPORTANT - Mac OS Extended formatted ! !
Yours Bengt W -
Error 1001 + Memory Problem
So after 2 system crashes I went looking online for the cause of the event ID error 1001. My search led me to this forum where I learned about a memory test which ended up informing me that I had a memory problem.
Error 1: Playing Minecraft when crash occured
The computer has rebooted from a bugcheck. The bugcheck was: 0x0000003b (0x00000000c0000005, 0xfffff96000136884, 0xfffff88009dd4030, 0x0000000000000000). A dump was saved in: C:\Windows\MEMORY.DMP. Report Id: 042511-25880-01.
XML:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider
Name="Microsoft-Windows-WER-SystemErrorReporting" Guid="{ABCE23E7-DE45-4366-8631-84FA6C525952}" EventSourceName="BugCheck"
/>
<EventID Qualifiers="16384">1001</EventID>
<Version>0</Version>
<Level>2</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x80000000000000</Keywords>
<TimeCreated
SystemTime="2011-04-26T03:30:32.000000000Z" />
<EventRecordID>153358</EventRecordID>
<Correlation
/>
<Execution
ProcessID="0" ThreadID="0" />
<Channel>System</Channel>
<Computer>llama-7</Computer>
<Security
/>
</System>
<EventData>
<Data Name="param1">0x0000003b (0x00000000c0000005, 0xfffff96000136884, 0xfffff88009dd4030, 0x0000000000000000)</Data>
<Data Name="param2">C:\Windows\MEMORY.DMP</Data>
<Data Name="param3">042511-25880-01</Data>
</EventData>
</Event>
Error 2: Exiting Starcraft 2 when crash occured
The computer has rebooted from a bugcheck. The bugcheck was: 0x0000007e (0xffffffffc0000005, 0xfffff880043ca6fa, 0xfffff88003f45788, 0xfffff88003f44fe0). A dump was saved in: C:\Windows\MEMORY.DMP. Report Id: 042711-29421-01.
XML:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider
Name="Microsoft-Windows-WER-SystemErrorReporting" Guid="{ABCE23E7-DE45-4366-8631-84FA6C525952}" EventSourceName="BugCheck"
/>
<EventID Qualifiers="16384">1001</EventID>
<Version>0</Version>
<Level>2</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x80000000000000</Keywords>
<TimeCreated
SystemTime="2011-04-28T03:22:40.000000000Z" />
<EventRecordID>158441</EventRecordID>
<Correlation
/>
<Execution
ProcessID="0" ThreadID="0" />
<Channel>System</Channel>
<Computer>llama-7</Computer>
<Security
/>
</System>
<EventData>
<Data Name="param1">0x0000007e (0xffffffffc0000005, 0xfffff880043ca6fa, 0xfffff88003f45788, 0xfffff88003f44fe0)</Data>
<Data Name="param2">C:\Windows\MEMORY.DMP</Data>
<Data Name="param3">042711-29421-01</Data>
</EventData>
</Event>
So now I come to the community with a cry for help. I am a pretty tech savvy guy but I have never come across this kind of problem before and I don't know what to do from here. I have contacted the memory manufacturer and am awaiting a reply.
Does a memory problem mean I need to replace my RAM?
EDIT:
I ran the memory test again and this time Windows
did not find any memory problem!!
So now I don't even know what is going on.
PC Specs:
Asus CG Series
Win 7 Home Premium 64-bit edition
AMD Phenom II X6
Radeon 5770 Graphics card.
8GB RAM* Bugcheck Analysis
SYSTEM_THREAD_EXCEPTION_NOT_HANDLED (7e)
This is a very common bugcheck. Usually the exception address pinpoints
the driver/function that caused the problem. Always note this address
as well as the link date of the driver/image that contains this address.
Arguments:
Arg1: ffffffffc0000005, The exception code that was not handled
Arg2: fffff880043ca6fa, The address that the exception occurred at
Arg3: fffff88003f45788, Exception Record Address
Arg4: fffff88003f44fe0, Context Record Address
Debugging Details:
EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s.
FAULTING_IP:
dxgmms1!VIDMM_MEMORY_SEGMENT::EvictResource+f3a
fffff880`043ca6fa 4d8b1b mov r11,qword ptr [r11]
EXCEPTION_RECORD: fffff88003f45788 -- (.exr 0xfffff88003f45788)
ExceptionAddress: fffff880043ca6fa (dxgmms1!VIDMM_MEMORY_SEGMENT::EvictResource+0x0000000000000f3a)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 0000000000000000
Parameter[1]: ffffffffffffffff
Attempt to read from address ffffffffffffffff
CONTEXT: fffff88003f44fe0 -- (.cxr 0xfffff88003f44fe0)
rax=fffff8a002cdcbd0 rbx=0000000000000000 rcx=ffdff8a010f6f0e0
rdx=fffff8a00d5acec0 rsi=fffff8a010f6f010 rdi=0000000000000000
rip=fffff880043ca6fa rsp=fffff88003f459c0 rbp=fffffa8008ec9000
r8=0000000000001000 r9=0000000000000000 r10=0000000000000001
r11=ffdff8a010f6f118 r12=0000000000000000 r13=0000000000000001
r14=fffffa8008a77ac0 r15=fffff8a010f6f118
iopl=0 nv up ei ng nz na po cy
cs=0010 ss=0018 ds=002b es=002b fs=0053 gs=002b efl=00010287
dxgmms1!VIDMM_MEMORY_SEGMENT::EvictResource+0xf3a:
fffff880`043ca6fa 4d8b1b mov r11,qword ptr [r11] ds:002b:ffdff8a0`10f6f118=????????????????
Resetting default scope
DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT
PROCESS_NAME: System
CURRENT_IRQL: 0
ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s.
EXCEPTION_PARAMETER1: 0000000000000000
EXCEPTION_PARAMETER2: ffffffffffffffff
READ_ADDRESS: ffffffffffffffff
FOLLOWUP_IP:
dxgmms1!VIDMM_MEMORY_SEGMENT::EvictResource+f3a
fffff880`043ca6fa 4d8b1b mov r11,qword ptr [r11]
BUGCHECK_STR: 0x7E
LAST_CONTROL_TRANSFER: from fffff880043ba25d to fffff880043ca6fa
STACK_TEXT:
fffff880`03f459c0 fffff880`043ba25d : fffffa80`08a77ac0 fffff8a0`10f6f010 fffffa80`0b18f000 fffffa80`08ec9000 : dxgmms1!VIDMM_MEMORY_SEGMENT::EvictResource+0xf3a
fffff880`03f45b30 fffff880`043b5358 : fffffa80`08db9810 00000000`00000080 00000000`00000000 fffff880`03f45ca0 : dxgmms1!VIDMM_GLOBAL::ProcessDeferredCommand+0x96d
fffff880`03f45c50 fffff880`043d316d : fffffa80`00000000 fffffa80`06a15010 00000000`0000000f fffff880`043d4f09 : dxgmms1!VidMmiProcessTerminationCommand+0x4c
fffff880`03f45ca0 fffff880`043d23f8 : fffff880`0308cfc0 fffffa80`077c2c00 00000000`00000000 fffffa80`06a15010 : dxgmms1!VidSchiSubmitDeviceCommand+0x39
fffff880`03f45cd0 fffff880`043d1e96 : 00000000`00000000 fffffa80`077c2c00 00000000`00000080 fffffa80`06a15010 : dxgmms1!VidSchiSubmitQueueCommand+0xb0
fffff880`03f45d00 fffff800`03169cce : 00000000`0ce38485 fffffa80`08a88a10 fffffa80`069aa990 fffffa80`08a88a10 : dxgmms1!VidSchiWorkerThread+0xd6
fffff880`03f45d40 fffff800`02ebdfe6 : fffff880`03088180 fffffa80`08a88a10 fffff880`03093040 fffff880`0122c384 : nt!PspSystemThreadStartup+0x5a
fffff880`03f45d80 00000000`00000000 : fffff880`03f46000 fffff880`03f40000 fffff880`03f45680 00000000`00000000 : nt!KxStartSystemThread+0x16
SYMBOL_STACK_INDEX: 0
SYMBOL_NAME: dxgmms1!VIDMM_MEMORY_SEGMENT::EvictResource+f3a
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: dxgmms1
IMAGE_NAME: dxgmms1.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 4ce799c1
STACK_COMMAND: .cxr 0xfffff88003f44fe0 ; kb
FAILURE_BUCKET_ID: X64_0x7E_dxgmms1!VIDMM_MEMORY_SEGMENT::EvictResource+f3a
BUCKET_ID: X64_0x7E_dxgmms1!VIDMM_MEMORY_SEGMENT::EvictResource+f3a
Followup: MachineOwner
0: kd> lmvm dxgmms1
start end module name
fffff880`0439a000 fffff880`043e0000 dxgmms1 (pdb symbols) c:\symbols\dxgmms1.pdb\0901C357E9E846EE8C2FBCC8107163201\dxgmms1.pdb
Loaded symbol image file: dxgmms1.sys
Image path: \SystemRoot\System32\drivers\dxgmms1.sys
Image name: dxgmms1.sys
Timestamp: Sat Nov 20 10:49:53 2010 (4CE799C1)
CheckSum: 00047A89
ImageSize: 00046000
File version: 6.1.7601.17514
Product version: 6.1.7601.17514
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 3.7 Driver
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: Microsoft Corporation
ProductName: Microsoft® Windows® Operating System
InternalName: dxgmms1.sys
OriginalFilename: dxgmms1.sys
ProductVersion: 6.1.7601.17514
FileVersion: 6.1.7601.17514 (win7sp1_rtm.101119-1850)
FileDescription: DirectX Graphics MMS
LegalCopyright: © Microsoft Corporation. All rights reserved.
The BSOD is caused by dxgmms1.sys which belongs to DirectX Graphics MMS.
Try to install that and check if this solve your problem:
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&displayLang=en
This posting is provided "AS IS" with no warranties or guarantees , and confers
no rights.
Microsoft Student Partner
Microsoft Certified Professional
Microsoft Certified Systems Administrator: Security
Microsoft Certified Systems Engineer: Security
Microsoft Certified Technology Specialist: Windows Server 2008 Active Directory, Configuration
Microsoft Certified Technology Specialist: Windows Server 2008 Network Infrastructure, Configuration
Microsoft
Certified Technology Specialist: Windows Server 2008 Applications Infrastructure, Configuration -
Memory Problems with Adobe PDF iFilter for 64-bit
In preparation to rebuild my Windows Search Index, I installed the Adobe PDF iFilter for 64-bit on my system (Vista Business 64). When I finally rebuilt the index, I wasn't too surprised by what I saw happen, namely, the SearchFilter.exe process would kick in whenever I wasn't using the system and just eat RAM. One time I turned it on and it had allocated over 4,000 MB (and my system only has 4,030 MB available) so of course it was forcing all the other processes to hard fault (ie. everything was moving like molasses--for example, it took 20 minutes to put the thing to sleep). But I just let it do it's work, figuring that perhaps this was to be expected relative to the small library of PDF's that I've accumulated on my computer, ranging from LaTeX generated text files, to containers for hi-res scans. So, after a day and a half of basically not using my laptop, everything finally calmed down and I enjoyed the benefits of searching the content of my library from the Windows Start menu--for a short while.
However, to my dismay I've encountered the problem that this freezing of my computer would now occur after everytime I download a new PDF (in this particular case they were Google Books scans) and then left the computer to idle. Again, the SearchFilter.exe would allocate all of my RAM for itself and just push everything else onto the Virtual RAM, which means the SLOWEST possibly fetching you can get. I had to uninstall as this was making my computer unusable for 15-30 minutes after each idle. Everything is back in working order without the iFilter, but I would like to know if anyone has reported such problems on x64 systems. Obviously, I will also report the problem to Microsoft, since the search engine should certainly have the precaution to handle such memory problems. However, it is a problem that is created by the Adobe PDF iFilter interacting with the Windows Search engine.Hello,
We believe we have figured this out. It looks like it has to do with the length of the default folder location for the Adobe iFilter.
I was able to reproduce the issue and the following resolved it for me. See if this resolves it for you all as well.
Here is how to get Adobe Version 11 PDF filter to work.
1 . If you haven’t already, run the following in SQL Server:
Sp_fulltext_service ‘Load_os_resources’, 1
Go
--you might also need to run:
sp_fulltext_service ‘Verify_signature’,0 --This is used to validate trusted iFilters. 0 disables it. So use with caution.
--go
2. Stop SQL Server. (Make sure FDHost.exe stops)
3.
Uninstall the Adobe ifilter (because it defaulted to having spaces or the folder name is too long).
4.
Reinstall the Adobe iFilter and when it prompts for where to install it, change it to: C:\Program Files\Adobe\PDFiFilter
5. Once the installation finishes, go the computer’s Environment variables. Add the following to the PATH.
C:\Program Files\Adobe\PDFiFilter\BIN
NOTE: it must include the BIN folder
NOTE: If you had the OLD location that included spaces, remove it from the path environment variable.
6. Start SQL Server
7. IF you had an existing Full-text index on PDFs, drop the full-text index and recreate it.
8. You should now get results when you run sys.dm_fts_index_keywords('db','tblname') --Note: Change db to be the actual database name and tblname to be the actual table name.
Give this a try and see if this fixes yours.
Sincerely,
Rob Beene, MSFT -
Memory problems with PreparedStatements
Driver: 9.0.1 JDBC Thin
I am having memory problems using "PreparedStatement" via jdbc.
After profiling our application, we found that a large number oracle.jdbc.ttc7.TTCItem objects were being created, but not released, even though we were "closing" the ResultSets of a prepared statements.
Tracing through the application, it appears that most of these TTCItem objects are created when the statement is executed (not when prepared), therefore I would have assumed that they would be released when the ResultSet is close, but this does not seem to be the case.
We tend to have a large number of PreparedStatement objects in use (over 100, most with closed ResultSets) and find that our application is using huge amounts of memory when compared to using the same code, but closing the PreparedStatement at the same time as closing the ResultSet.
Has anyone else found similar problems? If so, does anyone have a work-around or know if this is something that Oracle is looking at fixing?
Thanks
Bruce CrosgroveFrom your mail, it is not very clear:
a) whether your session is an HTTPSession or an application defined
session.
b) What is meant by saying: JSP/Servlet is growing.
However, some pointers:
a) Are there any timeouts associated with session.
b) Try to profile your code to see what is causing the memory leak.
c) Are there references to stale data in your application code.
Marilla Bax wrote:
hi,
we have some memory - problems with the WebLogic Application Server
4.5.1 on Sun Solaris
In our Customer Projects we are working with EJB's. for each customer
transaction we create a session to the weblogic application server.
now there are some urgent problems with the java process on the server.
for each session there were allocated 200 - 500 kb memory, within a day
the JSP process on our server is growing for each session and don't
reallocate the reserved memory for the old session. as a work around we
now restart the server every night.
How can we solve this problem ?? Is it a problem with the operating
system or the application server or the EJB's ?? Do you have problems
like this before ?
greetings from germany, -
Dual Channel memory problems on Neo 875P
I am having considerable trouble getting the NEO 875P to work with dual channel DDR400 DIMMs. I have two Kingston KVR400X64C25 DDR400 256MB memory modules, each of which works correctly by itself. However, once I move one
of the modules to channel B, I cannot boot my operating system (currently Windows XP.) The problem also occurs in Windows 2000, which I also have on the system. I receive blue screen errors that indicate paging/memory problems. I have upgraded my BIOS to the latest version (1.3)* in the hope that it would solve my problems, but it has not. The POST screen detects that there is 512MB of memory working in Dual Channel mode, but even when it does get through the O/S booting process (rarely), it crashes within minutes. Putting just one of the chips in makes the system perfectly stable. If anyone has any information, please let me know!
Thanks,
Jim Keller
http://www.centerfuse.net
* My board was dead after trying to flash the 1.3 BIOS, but after about 10 attempts of using CTRL+HOME method to recover the BIOS, it finally worked with version 1.0. I then re-flashed with 1.3, and it rebooted fine. Are there any updates about all of the problems with v1.3 ?>I can only answer based on what I've read on this forum
I figured as much, I was just wondering if you knew whether MSI themselves frequents the forums or answers emails sufficiently.
I've had an interesting development though. I stumbled upon Tom's Hardware Guide's article about 875P motherboards at http://www17.tomshardware.com/motherboard/20030519/i875p-01.html
They mentioned that they needed to increase the memory voltage from 2.5 to 2.6 in the BIOS to get some memory modules to work. I did this, and for the first time, I am running in Dual channel DDR mode. However, the article also mentions that "the system does not run completely stably", so I guess I'll have to wait and see if it crashes again. However, I'm far enough beyond the XP splash screen to post this message, so I guess we're getting somewhere!
-Jim Keller
http://www.centerfuse.net
Maybe you are looking for
-
What is the happens in R/3 side?
Hi, I have been working in SAP MDM for last 6 months. I actually did a POC for Denmark client. I need real time knowledge what is going behind in MM Systems. I have two R/3 (ECC) systems from where the data is coming into MDM. I have customer data in
-
I was on the phone with Apple Support telling them about the MacBook I bought used for my daughter. I wanted to reset it to "factory settings" and clear everything off of it. I thought I was doing everything that I supposed to be doing but when it c
-
Video is displaying in negative
I have an intel iMac 17" bought in February. My kids logged on this morning to find that the video is displaying in negative, like a film negative. I first thought that maybe they downloaded some kind of skin or little app that let you change the loo
-
PO number for B2B Sales Orders.
Hello, B2B orders lines are in the status "PO Created". But while checking the PO number in the Supply TAB, PO number is blank and greyed out. Intrestingly we can see the PO line number. Any pointers? Thanks Radha.
-
Each record of table in new page
experts help i will be having records in table and each record i want to print in new page. suppose if i have 5 records ie 5 items i need to print in 5 pages. I was looping at table. and printing each record , but all are comming in the same page. P