XMLIndex Value Index on repository
Hello,
I'm still fighting with that peculiar "value index" feature. Unfortunately I cannot really find comprehensive in-depth information on it at all.
Has anyone ever gotten this to work with the repository?
What I have found out so far:
1) When you have an normal table with an XMLType column and an XMLIndex on this column, then the only way to make VALUEIX show up in the EXPLAIN plan is when I write sth. like this:
SELECT rowid FROM exampletable WHERE EXISTSNODE(xmlcolumn,'/xml[leaf="green"]')=1;
2) It does NOT work if I write:
SELECT rowid FROM exampletable WHERE EXTRACTVALUE(xmlcolumn,'/xml/leaf')='green';
For some reason Oracle isn't able to detect it can use the VALUE index in the latter case.
Only PATHIX is used.
3) The type seems to be important. It does NOT work either if I write:
SELECT rowid FROM exampletable WHERE EXISTSNODE(xmlcolumn,'/xml[leaf=green]')=1;
That's OK, though. According to the documentation the value index created by default is for strings only.
4) Now, with the repository, the first thing to note is that you MUST use UNDER_PATH in your query to limit results on the folders you have created an XMLIndex on.
SELECT rowid FROM resource_view
WHERE
EXTRACTVALUE(res,'/r:Resource/r:Contents/xml/leaf,'xmlns:r="http://xmlns.oracle.com/xdb/XDBResource.xsd"')='green'
AND UNDER_PATH(res,'/public')=1
This uses only PATHIX, though. This follows the logic from above which is that EXTRACTVALUE never uses a VALUE index.
5) OK. Let's try EXISTSNODE then:
SELECT rowid FROM resource_view
WHERE
EXTRACTVALUE(res,'/r:Resource/r:Contents/xml[leaf="green"],'xmlns:r="http://xmlns.oracle.com/xdb/XDBResource.xsd"')=1
AND UNDER_PATH(res,'/public')=1
This doesnt use any xml index at all :-(
Why?
I've tried all variants over the last hours to no avail.
Interestingly, Example 5-31 here is nearly the same query I'm doing:
http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28369/xdb_indexing.htm#CHDBGBEG
Unfortunately, they don't give an EXPLAIN plan with that query so I don't know what they think should happen.
Can the VALUE INDEX be used at all with a repository? My case is the simplest one I could think of. My steps:
1) Take any XML DB repository
2) Insert an XML file (for instance with WebDAV, doesnt matter though)
3) Create an XMLIndex with CALL DBMS_XDB_ADMIN.CreateRepositoryXMLIndex(); and DBMS_XDB_ADMIN.XMLIndexAddPath(...)
4) Try to make a simple XMLExists() query
Doesnt work. No VALUE INDEX used. :-(
Is there any way to query the VALUE INDEX of a repository manually in case this is an Oracle bug? I somehow need to make this work,
because the repository is pretty useless otherwise if I can't query it in an efficient manner.
Similar Messages
-
Using a Value index on XMLIndex path table.
I am trying to understand how to capitalize on the VALUE index created on a XMLIndex path table. So far, I have not been able to successfully use it. I am not sure whether I am misunderstanding the way it is intended to be used? Or am making a mistake somewhere else along the way. Here is a use-case where I think that it should be getting picked up by the optimizer:
CREATE TABLE TEST_TABLE
(ID VARCHAR2(128) NOT NULL,
XML_DATA XMLTYPE NOT NULL,
CONSTRAINT TEST_PK PRIMARY KEY (ID))
XMLTYPE COLUMN XML_DATA STORE AS BINARY XML;
-- Populate the table with some random data. Here, our single attribute should be
-- unique for each row.
INSERT INTO TEST_TABLE (
SELECT dbms_random.string('A', 15), XMLElement("Test", XMLAttributes(dbms_random.string('A', 15) as "someAttr"))
FROM DUAL
CONNECT BY LEVEL <= 20000 );
CREATE INDEX test_xmlindex_ix ON TEST_TABLE(XML_DATA) INDEXTYPE IS XDB.XMLIndex
PARAMETERS('
PATHS (Include (/Test/@someAttr))
PATH TABLE test_path_table
PATH ID INDEX test_path_id_ix
ORDER KEY INDEX test_key_ix
VALUE INDEX test_value_ix ');
-- Not sure if I need these or not?
CALL DBMS_STATS.GATHER_TABLE_STATS ('MYSCHEMA', 'TEST_TABLE');
CALL DBMS_STATS.GATHER_TABLE_STATS ('MYSCHEMA, 'TEST_PATH_TABLE');
-- Now, I would expect this query to use the Value index that was created.
-- Instead, the Explain plan indicates that TEST_PATH_ID_IX was used..
SELECT xml_data
FROM test_table v
WHERE extractValue(v.xml_data, '/Test/@someAttr') = ?
Here are the operations listed in the explain plan for the query:
SELECT STATEMENT
FILTER
TABLE ACCESS(FULL) MYSCHEMA.TEST_TABLE
TABLE ACCESS(BY INDEX ROWID) MYSCHEMA.TEST_PATH_TABLE
INDEX(RANGE SCAN) MYSCHEMA.TEST_PATH_ID_IXIf I understand everything correctly, here, there is no reason why the PATH ID index should have been used. Isn't this index strictly for the XML tags themselves? Why wouldn't it use the Value index?
Thanks,
JonPATH_TABLE
+=======================================================+
| PathID | RID | Order_Key | Locator | Value |
|-------------------------------------------------------|
| RAW | rowid | RAW | RAW | varchar2(4000) |
|-------------------------------------------------------|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
+=======================================================+
XMLIndex
1) PATH INDEX: (PathID, RID) - BTree
2) ORDER INDEX: (RID, ORDER_KEY) - BTree
3) VALUE INDEX: (substr("VALUE",1,1599)) - Function Based
Locator: Pointer to XML Fragments
XMLIndex - Namespace issue...
I believe that (although I don't know the exact mechanics) that it will use the path index first to find the needed
tree node / path, then will look for a locator that matches the request and if not will do an full table scan
afterwards, if not successful, trying to limit the request with the filter at hand, so see if it can be used, to
minimize the sub-results.
Message was edited by:
Marco Gralike -
Order index ,value index xml indexes
on 11g xml indexes are present.
i got one examplfe for this
CREATE INDEX XMLINDEX_IX4 ON TABLE_WITH_XML_COLUMN
(xml_document)
INDEXTYPE IS XDB.XMLIndex
PARAMETERS ('PATHS (INCLUDE (/REQUESTID/ID
NAMESPACE MAPPING
(xmlns="http://localhost/xmlschema_bin.xsd")
PATH TABLE root_path_table
PATH ID INDEX root_pathid_ix
ORDER KEY INDEX root_orderkey_ix
ASYNC (SYNC ALWAYS) STALE (FALSE)
PARALLEL;
i need some examples on order index ,value index xml indexes.{forum:id=34} forum
[Marco's Blog|http://www.liberidu.com/blog/] (An Ace of the above forum)
Any future questions would best be addressed in the above forum as well. -
Hi All,
I am new to Siebel and installed Siebel 8.1.1.11 on RHEL 5.5 (64 bit). Everything is fine Siebel server and gateway server are up and running but i am unable to open login page.
Login Error : The server you are trying to access is either busy or experiencing difficulties. Please close the Web browser, open a new browser window, and try logging in again.[15:36:09]
Siebel Server log file error :
GenericLog
GenericError
1
00006c5c52eb6e6f:0
2014-01-31 13:06:04
(sccnmsys.cpp (1306) err=2883609 sys=0) SBL-SCC-00025: No value found in the Gateway. Default value in the repository is used.
GenericLog
GenericError
1
00006c6352eb6e6f:0
2014-01-31 13:06:04
(sccnmsys.cpp (1306) err=2883609 sys=0) SBL-SCC-00025: No value found in the Gateway. Default value in the repository is used.
GenericLog
GenericError
1
00006c6452eb6e6f:0
2014-01-31 13:06:04
(sccnmsys.cpp (1306) err=2883609 sys=0) SBL-SCC-00025: No value found in the Gateway. Default value in the repository is used.
GenericLog
GenericError
1
00006c6552eb6e6f:0
2014-01-31 13:06:04
(sccnmsys.cpp (1306) err=2883609 sys=0) SBL-SCC-00025: No value found in the Gateway. Default value in the repository is used.
GenericLog
GenericError
1
00006c6652eb6e6f:0
2014-01-31 13:06:04
(sccnmsys.cpp (1306) err=2883609 sys=0) SBL-SCC-00025: No value found in the Gateway. Default value in the repository is used.
GenericLog
GenericError
1
00006c7152eb6e6f:0
2014-01-31 13:06:04
(sccnmsys.cpp (1306) err=2883609 sys=0) SBL-SCC-00025: No value found in the Gateway. Default value in the repository is used.
GenericLog
GenericError
1
00006c8052eb6e6f:0
2014-01-31 13:06:04
(sccnmsys.cpp (1306) err=2883609 sys=0) SBL-SCC-00025: No value found in the Gateway. Default value in the repository is used.
GenericLog
GenericError
1
00006c8152eb6e6f:0
2014-01-31 13:06:04
(sccnmsys.cpp (1306) err=2883609 sys=0) SBL-SCC-00025: No value found in the Gateway. Default value in the repository is used.
GenericLog
GenericError
1
00006c9052eb6e6f:0
2014-01-31 13:06:04
(sccnmsys.cpp (1306) err=2883609 sys=0) SBL-SCC-00025: No value found in the Gateway. Default value in the repository is used.
GenericLog
GenericError
1
00006c9152eb6e6f:0
2014-01-31 13:06:04
(sccitems.cpp (310) err=2555932 sys=0) SBL-SCM-00028: Key not found
GenericLog
GenericError
1
00006c9152eb6e6f:0
2014-01-31 13:06:04
(sccconfg.cpp (2149) err=2555932 sys=0) SBL-SCM-00028: Key not found
I can connect to Siebel Server manager using command as : srvrmgr /g 192.168.0.163 /e Sieb81 /u SADMIN /p SADMIN
ODBC connectivity is also ok and i can connect as : ./odbcsql /source Sieb81_DSN /u SADMIN /p SADMIN
While installing Siebel i had left one step i .e.. creation of siebenv.sh using CreateSiebSrvrEnvScript because i got error when executed this script as :
Execution command : ./CreateSiebSrvrEnvScript /u01/siebel/ses/siebsrvr 192.168.0.163:2320 ENU Oracle
Error : cp: cannot copy a directory, '/u01/siebel/ses/siebsrvr/locale/' , into itself , '/u01/siebel/ses/siebersrvr/locale/C/locale'
Please suggest me what to do because if i want to configure again the same issue with CreateSiebSrvrEnvScript.
Message was edited by: Prabhakar2991Hi Prameela,
You can see all application objects are online and running. One more thing I have also checked ODBC is also working fine. I mean , user SADMIN can connect using ODBC.
=====================================================================================================================================
[oracle@siebel163 siebsrvr]$ srvrmgr /g 192.168.0.163 /e Sieb81 /u SADMIN /p SADMIN
Siebel Enterprise Applications Siebel Server Manager, Version 8.1.1.11 [23030] LANG_INDEPENDENT
Copyright (c) 1994-2012, Oracle. All rights reserved.
The Programs (which include both the software and documentation) contain
proprietary information; they are provided under a license agreement containing
restrictions on use and disclosure and are also protected by copyright, patent,
and other intellectual and industrial property laws. Reverse engineering,
disassembly, or decompilation of the Programs, except to the extent required to
obtain interoperability with other independently created software or as specified
by law, is prohibited.
Oracle, JD Edwards, PeopleSoft, and Siebel are registered trademarks of
Oracle Corporation and/or its affiliates. Other names may be trademarks
of their respective owners.
If you have received this software in error, please notify Oracle Corporation
immediately at 1.800.ORACLE1.
Type "help" for list of commands, "help <topic>" for detailed help
Connected to 1 server(s) out of a total of 1 server(s) in the enterprise
srvrmgr> list components
SV_NAME CC_ALIAS CC_NAME CT_ALIAS CG_AL IAS CC_RUNMODE CP_DISP_RUN_STATE CP_STARTMODE CP_NUM_RUN_TASKS CP_MAX_TASKS CP_ACTV_MTS_PROCS CP_MAX _MTS_PROCS CP_START_TIME CP_END_TIME CC_INCARN_NO CC_DESC_TEXT
siebelsrvr BusIntBatchMgr Business Integration Batch Manager BusSvcMgr EAI Batch Online Auto 0 20 1 1 2014-01-29 02:48:30
siebelsrvr BusIntMgr Business Integration Manager BusSvcMgr EAI Batch Not Online Auto 0 20 0 1 2014-01-29 02:48:30
siebelsrvr SCCObjMgr_enu Call Center Object Manager (ENU) AppObjMgr CallC enter Interactive Online Auto 0 20 1 1 2014-01-29 02:48:30
siebelsrvr CustomAppObjMgr_enu Custom Application Object Manager (ENU) CustomAppObjMgr EAI Interactive Online Auto 0 20 1 1 2014-01-29 02:48:30
siebelsrvr DQMgr Data Quality Manager Dqmgr DataQ ual Batch Online Auto 0 20 1 1 2014-01-29 02:48:30
siebelsrvr EAIObjMgr_enu EAI Object Manager (ENU) EAIObjMgr EAI Interactive Online Auto 0 20 1 1 2014-01-29 02:48:30
siebelsrvr InfraEAIOutbound EAI Outbound Server BusSvcMgr EAI Batch Not Online Auto 0 20 0 1 2014-01-29 02:48:30
siebelsrvr EIM Enterprise Integration Mgr EIM EAI Batch Online Auto 0 5 2014-01-29 02:48:30
siebelsrvr FSMSrvr File System Manager FSMSrvr Syste mAux Batch Online Auto 0 20 1 1 2014-01-29 02:48:25
siebelsrvr GenTrig Generate Triggers GenTrig Workf low Batch Online Auto 0 1 2014-01-29 02:48:30
siebelsrvr JMSReceiver JMS Receiver EAIJMSRcvr EAI Batch Online Auto 0 20 1 1 2014-01-29 02:48:30
siebelsrvr MqSeriesAMIRcvr MQSeries AMI Receiver EAIRcvr EAI Background Online Auto 0 20 2014-01-29 02:48:30
siebelsrvr MqSeriesSrvRcvr MQSeries Server Receiver EAIRcvr EAI Background Online Auto 0 20 2014-01-29 02:48:30
siebelsrvr MSMQRcvr MSMQ Receiver EAIRcvr EAI Background Online Auto 0 20 2014-01-29 02:48:30
siebelsrvr SMQReceiver SMQ Receiver EAIRcvr EAI Background Online Auto 0 20 2014-01-29 02:48:30
siebelsrvr SServiceObjMgr_enu Self Service Object Manager (ENU) AppObjMgr CallC enter Interactive Online Auto 0 20 1 1 2014-01-29 02:48:30
siebelsrvr ServerMgr Server Manager ServerMgr Syste m Interactive Running Auto 2 20 2014-01-29 02:48:20
siebelsrvr SRBroker Server Request Broker ReqBroker Syste m Interactive Running Auto 25 100 1 1 2014-01-29 02:48:20
siebelsrvr SRProc Server Request Processor SRProc Syste mAux Interactive Running Auto 2 20 1 1 2014-01-29 02:48:25
siebelsrvr SvrTblCleanup Server Tables Cleanup BusSvcMgr Syste mAux Background Running Auto 1 1 2014-01-29 02:48:25
siebelsrvr SvrTaskPersist Server Task Persistance BusSvcMgr Syste mAux Background Running Auto 1 1 2014-01-29 02:48:25
siebelsrvr AdminNotify Siebel Administrator Notification Component AdminNotify Syste mAux Batch Online Auto 0 10 1 1 2014-01-29 02:48:25
siebelsrvr SCBroker Siebel Connection Broker SCBroker Syste m Background Running Auto 1 1 2014-01-29 02:48:20
siebelsrvr WorkActn Workflow Action Agent WorkActn Workf low Background Online Auto 0 5 2014-01-29 02:48:30
siebelsrvr WorkMon Workflow Monitor Agent WorkMon Workf low Background Online Auto 0 5 2014-01-29 02:48:30
siebelsrvr WfProcBatchMgr Workflow Process Batch Manager BusSvcMgr Workf low Batch Online Auto 0 20 1 1 2014-01-29 02:48:30
siebelsrvr WfProcMgr Workflow Process Manager BusSvcMgr Workf low Batch Not Online Auto 0 20 0 1 2014-01-29 02:48:30
siebelsrvr WfRecvMgr Workflow Recovery Manager BusSvcMgr Workf low Batch Online Auto 0 20 1 1 2014-01-29 02:48:30
siebelsrvr eChannelCMEObjMgr_enu eChannel Power Communications Object Manager (ENU) AppObjMgr Commu nications Interactive Online Auto 0 20 1 1 2014-01-29 02:48:30
siebelsrvr eCommunicationsObjMgr_enu eCommunications Object Manager (ENU) AppObjMgr Commu nications Interactive Online Auto 0 20 1 1 2014-01-29 02:48:30
siebelsrvr eCommWirelessObjMgr_enu eCommunications for Wireless Object Manager (ENU) AppObjMgr Commu nications Interactive Online Auto 0 20 1 1 2014-01-29 02:48:30
siebelsrvr eCustomerCMEObjMgr_enu eCustomer Power Communications Object Manager (ENU) AppObjMgr Commu nications Interactive Online Auto 0 20 1 1 2014-01-29 02:48:30
siebelsrvr eEnergyObjMgr_enu eEnergy Object Manager (ENU) AppObjMgr Commu nications Interactive Online Auto 0 20 1 1 2014-01-29 02:48:30
siebelsrvr eMediaObjMgr_enu eMedia Object Manager (ENU) AppObjMgr Commu nications Interactive Online Auto 0 20 1 1 2014-01-29 02:48:30
siebelsrvr eEnergyOGCObjMgr_enu eOil Gas & Chemicals Object Manager (ENU) AppObjMgr Commu nications Interactive Online Auto 0 20 1 1 2014-01-29 02:48:30
siebelsrvr eSalesCMEObjMgr_enu eSales Power Communications Object Manager (ENU) AppObjMgr Commu nications Interactive Online Auto 0 20 1 1 2014-01-29 02:48:30
siebelsrvr eServiceObjMgr_enu eService Object Manager (ENU) AppObjMgr CallC enter Interactive Online Auto 0 20 1 1 2014-01-29 02:48:30
37 rows returned.
srvrmgr>
=======================================================================================================================================
Please suggest me what to do.
Thanks
Prabhakar -
Where is the value of report repository stored in the database?
Hi all,
One of our developers is trying to write a code that would send the output report (pdf)of a process through mail, typical work flow stuff.But the problem is that we are not supposed to hard code the value of report repositiry from where the report has to be picked.can anybody suggest a table in the database from where the value of report repository can be queried.
we tried using
select reportrepositorypt from pswebprofile.
but this doesnt return the correct path. we went to PIA->peopletools->webprofile ->webprofie configuration
here we updated the value in report repository field and saved it and queried again.
But this didnt solve our problem.
Its showing the previous value which is different from the actual report repository path.
all the servers are in solaris box.
please suggets.
Thanks!Right now, I am trying to send a PDF (XML Publisher report) as an email to our vendors (it is their ACH Advice).
What I have done so far is: Created an App Engine, one step to populate a state record with run control information and the second step that runs XML Publisher and creates PDF report(s) which are published to the Report Repository and saved to a file on our network. Now I think I just need to create a third step to recall the PDF(s) and send the PDF(s) out as emails to our vendors.
I have found that the PDF information from Report Repository is stored in the Database in the CDM_LIST_VW record (this is a view and the main underlying table is CDM_LIST, but this contains what I need for now, so I'm going to try using it first). The Report ID is stored in the CONTENTID field and the Report Description (description shown on the Report Repository -- which in our case contains the email address) is stored in the CONTENT_DESCR field. So I am going to try over the next week to write the logic to query the CDM_LIST_VW for the data needed for the email address and the ReportID to go and grab the file....The hardest part is finding the actual file but I am hoping that I can also find a URL on that table. I'd pull the file from the network, but XML Publisher writes them out into numbered folders where all the PDFs are named the XML Report Defn - thus same name). I have not tried any of this yet, but am hoping I'm on the right path.
I hope this helped answer your question.
Good Luck!
Jennifer -
Custom field F4 help - selected value/index
Hi experts,
We have an F4 help for a custom field in an assignment block and the values are populated using a standard structure currency field (CRMST_PRICINGSET_BTIL-CURRENCY) in the GET_V method.
We have also defined an event handler to capture the selection of the value from F4. But in this event handler, how can we get the value /index of the row selected in the F4 help?
Since it is an F4 help and not a pop-up of type IF_BSP_WD_POPUP, we can't use the get_fired_outbound_plug( ) concept here.
Regards,
NishaHi NishaNC,
If field is already in the structure, just use a check table like field CURRENCY in structure CRMST_PRICINGSET_BTIL.
If not, please check component BT131QI_SLSQ, view Details, context node BTPRICINGSET, field NETPRICE_CURR.
Create the methods and do the same way as methods for field NETPRICE_CURR.
Of course, you need have a CURRENCY field in you structure first(same as structure CRMST_PRICINGSET_BTIL).
For your issue, I think you already have a field in the structure, so just add a check table is OK.
Regards,
Meng
Edited by: Lingxing Meng on Dec 2, 2010 3:27 PM -
Read Table ITAB with key Dynamic Value index 1
Here is sample Intenral table
Columnname-C01 / C02 / C03
Value-123 / 456 /789
I would like to search value of the internal table according to dynamic value given by the code.
i.e.
read table ITAB with key <Dynamic Value> index 1.Hi,
Apart from read, you can also use <b>SEARCH</b> statement.
Syntax
SEARCH
Searches for strings.
Syntax
SEARCH <f>|<itab> FOR <g> [ABBREVIATED]
[STARTING AT <n1>]
[ENDING AT <n2>]
[AND MARK]
[IN BYTE MODE|IN CHARACTER MODE].
Searches the field <f> or table <itab> for the string in the field <g>. The result is stored in SY-FDPOS. The additions let you hide intermediate characters, search from and to a particular position, and convert the found string into uppercase. In Unicode programs, you must specify whether the statement is a character or byte operation, using the IN BYTE MODE or IN CHARACTER MODE (default) additions.
Hope this information is useful to you.
Regards,
Saumya -
Error when indexing WebDav Repository documents
Hello,
We're using SAP EP 7.0 and when trying to index WebDav Repository documents that exist, we get an error.
User has full authorization on these files and WebDav folder. What could be the problem?
Thanks in advance&RegardsHi Belen:
Kindly post the error which you receive.
P.S: Kindly assign points if your query is resolved, also close the question to assist other users narrow the search and find solutions -
Hi,
we have configured windows file share into KM by webdav repository and SSO. Now our requirement is to index these repository documents. As these scenario works as an SSO model, i have created index_service and other service users in ADS.
I am indexing it by assigning datasource as these webdav repository. I have some 8000 documents under this repository. But when the indexing is ove, i could see that only few hundred documents are getting indexed. Other documents failed to get preprocessed. It is throwing error as
Return Code: 13502
Return Message: HTTP-Proxy: BadGateway
Document Status: Preparation Failed
Action: Index
Retry Count: 3
What is that i can do to get all the documents indexed ?
Thanks & Regards,
Ganesh NGanesan,
1) Check if all the documents are visible in KM content iview.
2) Since you are able to index few documents I guess the problem could be with TREX's limitation. There are few limitation with TREX (it wont index xls with more than 10000 lines, pdf more than 5Mega bytes etc).
Refer this document,
http://help.sap.com/bp_epv260/EP_JA/documentation/How-to_Guides/10_TREXRec_en.pdf
3) Check if you access to those documents on the fileshare (authorization to Read the file)
Regards,
Deepak -
XMLIndex: finding indexed XPaths and the number of rows in the path table
Hi,
I am storing non-schema-based binary XMLs in an XMLType column in 11g (11.1.0.6.0) and would like to index the XMLs either partially or fully using XMLIndex. I'm expecting to have a large number (tens of millions) of XML documents and have some concerns about the size of the XMLIndex path table.
In short, I am worried that the path table might grow unmanageable large. In order to avoid this and to plan for table partitioning, I would like to create a report of all indexed XPaths in an XMLIndex and to find out how many times each path is actualized in the path table. I would do this for a representative XML sample.
I have been creating XMLIndexes with different exclude/include paths, gathering stats with DBMS_STATS (estimate_percent = 100) and selecting the number of rows in the path table through USER_TABLES.
If anyone knows a more straightforward way of doing this all advice is very much appreciated.
Best Regards,
Rasko LeinonenThanks Marco,
I managed to get out all indexed paths using the following SQL. It took a while to understand how the join the XDB.X$PT39CW6BJR8W4VVE0G0LLGA0OCR5 and XDB.X$QN39CW6BJR8W4VVE0G0LLGA0OCR5 tables together but got there in the end. This helps to clarify which XPaths are being currently indexed by the XMLIndex.
begin
for v_row in (select PATH from XDB.X$PT39CW6BJR8W4VVE0G0LLGA0OCR5)
loop
declare
v_i BINARY_INTEGER := 1;
v_id raw(8);
v_len BINARY_INTEGER := 2;
v_skip BINARY_INTEGER := 1;
begin
while v_i < utl_raw.length(v_row.path) and
v_i + v_len <= utl_raw.length(v_row.path)
loop
v_i := v_i + v_skip;
v_id := utl_raw.substr(v_row.path, v_i, v_len);
--dbms_output.put_line(v_id);
for v_row2 in (select LOCALNAME, flags from XDB.X$QN39CW6BJR8W4VVE0G0LLGA0OCR5
where ID = v_id )
loop
if rawtohex(v_row2.flags) = '01'
then
dbms_output.put('@');
end if;
dbms_output.put(v_row2.localname);
if v_i + v_len < utl_raw.length(v_row.path)
then
dbms_output.put('/');
end if;
end loop;
v_i := v_i + v_len;
end loop;
dbms_output.put_line('');
end;
end loop;
end;
Example output:
RUN
RUN/@accession
RUN/@alias
RUN/@instrument_model
RUN/@run_date
RUN/@run_center
RUN/@total_data_blocks
RUN/EXPERIMENT_REF
RUN/EXPERIMENT_REF/@accession
RUN/EXPERIMENT_REF/@refname
RUN/DATA_BLOCK
RUN/DATA_BLOCK/@name
RUN/DATA_BLOCK/@total_spots
RUN/DATA_BLOCK/@total_reads
RUN/DATA_BLOCK/@number_channels
RUN/DATA_BLOCK/@format_code
RUN/DATA_BLOCK/@sector
RUN/DATA_BLOCK/FILES
RUN/DATA_BLOCK/FILES/FILE
RUN/DATA_BLOCK/FILES/FILE/@filename
RUN/DATA_BLOCK/FILES/FILE/@filetype
RUN/RUN_ATTRIBUTES
RUN/RUN_ATTRIBUTES/RUN_ATTRIBUTE
RUN/RUN_ATTRIBUTES/RUN_ATTRIBUTE/TAG
RUN/RUN_ATTRIBUTES/RUN_ATTRIBUTE/VALUE -
Indexing Lotus Repository fails with an exception
Hi,
I am trying to index a lotus repository. But after indexing around 10000 documents the indexing fails with an exception.
"Crawler global_index_Telstra Technology Doc Library failed - com.sapportals.wcm.service.xcrawler.XCrawlerException: crawler task INDEXMANAGEMENT_global_index.409bc343-1a86-2710-0292-b5747d8b1241 terminated unexpectedly (retriever failure)"
Does anyone have an idea why its happening like this
Its a bit urgent
Regards
PrakashHi Prakash,
assuming your intrante sites are crawled by a crawler profile "for Web-RM" the most common things you may still need to do are:
- In the crawler parameters, Mark "Follow Links (or Redirects on Web-Sites)", if your start page(s)
- On the intranet sites, check if they use robot information that says "noindex" or "nofollow" and possibly change that
If that does not help...sorry, it's OSS again.
Karsten -
Error when indexing web repository
I'm working on a problem that I'm having with indexing a web repository. For the sake of this post, we will call the web site that I'm indexing for the repository http://mysite1.com. For the most part, things are working just fine. The problem is that there's a couple of links in one of the pages in http://mysite1.com that aren't getting crawled.
The first link is http://mysite2.com. This link is to a web site that is on our network, but you are normally required to provide a username and password to access it. The message in the crawler error file that's being generated is:
ERROR Mar 27, 2009 8:04:02 AM /webdynamic/mysite2.com http://mysite2.com/ processing failed com.sapportals.wcm.repository.AuthorizationRequiredException
I created an HTTP System in the System Landscape Definitions for http://mysite2.com, and here's what it looks like:
Description: mysite
Same User Domain: <unchecked>
Max Connections: 0
Password: <set to the password for the user>
Server Aliases: <blank>
Server URL: http://mysite2.com
User: myuser
I have verified that the username and password that I have configured here are valid. I have also set up a web site definition for this, and here's what it
looks like:
Login Timeout: <blank>
System ID: mysite.com
All the rest of the options for the web site are blank.
What else do I need to do to get the crawler to access the content of http://mysite2.com?
The other link that I'm getting errors on is http://mysite3.com. The error in the crawler error file is:
ERROR Mar 27, 2009 8:04:01 AM /webdynamic/mysite3.com http://mysite3.com/ processing failed com.sapportals.wcm.repository.TimeExceededException:
request to /: Read timed out
This site is accessible both internally and externally to our network. I'm not sure what I need to do for this. Can anyone help me out with this?
Thanks!
-Stephen SpaldingHi Esther Schmitz,
Thanks for quick reply. As you said, i have changed website url to http://www.cnn.com.
but still it shows below error messages.
The target of the link TECH you tried to navigate to is not available. Its repository might be disconnected or the target may have been renamed, moved, or deleted. Contact your system administrator if you think the target /CNN/TECH/TECH should be available.
Thanks,
Satya -
Hi,
We need some help getting our queries to join on V() type indexes, so we think.
Here is our situation: We are on DBXML 2.2.13, and not quite ready to upgrade.
We are trying to do a join of 2 or sequences each 5000 in length.
Based on our reading of the query plan, the joins are not using the V(...) type index on both sides of the join.
One side will use a V() index, the other uses a P() regardless of the indexe(s) we apply.
We used double data type on the index type because of another posting, but we we get the same results regardless of the datatypes used in out index(s)
The @patient-ref and @id values are all positive integer values.
We've re-arranged the query, we've tried many different datatypes on the query.... Help!
The questions are:
a) are we on to the correct optimization strategy, and
b) please help us how to figure out how to get the right type of indexs applied.
Thanks...
dbxml> reindex system.dbxml n
dbxml> list
Default Index: node-attribute-equality-double
Index: unique-node-metadata-equality-string for node {http://www.sleepycat.com/2002/dbxml}:name
2 indexes found.
dbxml> queryplan 'for $pid in collection()/reports-catalog/report/@patient-ref where $pid = collection()/patient-index/patient/@id return $pid'
<XQuery>
<FLWOR>
<ForBinding name="pid">
<Navigation>
<QueryPlanFunction result="collection" container="system.dbxml">
<OQPlan>P(node-attribute-equality-double,prefix,@patient-ref)</OQPlan>
</QueryPlanFunction>
<Step axis="child" name="reports-catalog" nodeType="element"/>
<Step axis="child" name="report" nodeType="element">
<OQPlan>P(node-attribute-equality-double,prefix,@patient-ref)</OQPlan>
</Step>
<Step axis="attribute" name="patient-ref" nodeType="attribute"/>
</Navigation>
<Where>
<Navigation>
<QueryPlanFunction result="collection" container="system.dbxml">
<RQPlan>V(@id,=,'[to be calculated]')</RQPlan>
</QueryPlanFunction>
<Step axis="child" name="patient-index" nodeType="element"/>
<Step axis="child" name="patient" nodeType="element">
<RQPlan>V(@id,=,'[to be calculated]')</RQPlan>
</Step>
<Step axis="attribute" name="id" nodeType="attribute"/>
<DbXmlCompare name="equal">
<Variable name="pid"/>
</DbXmlCompare>
</Navigation>
</Where>
</ForBinding>
<Variable name="pid"/>
</FLWOR>
</XQuery>I did try the node-attribute-equality-string index before, but I must have left on my node-element-presence-none index, because now, I'm getting what looks like a much more improved query using the string index and NOT using the node-element-presence-none index.
dbxml> run test.xq
Default Index: node-attribute-equality-string
Index: unique-node-metadata-equality-string for node {http://www.sleepycat.com/2
002/dbxml}:name
2 indexes found.
Adding default index type: node-attribute-equality-string
Container reindexed: chb-system.dbxml
5000 objects returned for eager expression '
for $pid in collection()/reports-catalog/report/@patient-ref
where $pid = collection()/patient-index/patient/@patient-ref
return
$pid
Time in seconds for command 'query': 2.438
dbxml> run test.xq
Default Index: node-attribute-equality-string
Index: unique-node-metadata-equality-string for node {http://www.sleepycat.com/2
002/dbxml}:name
2 indexes found.
Adding default index type: node-attribute-equality-string
Container reindexed: chb-system.dbxml
<XQuery>
<FLWOR>
<ForBinding name="pid">
<Navigation>
<QueryPlanFunction result="collection" container="chb-system.dbxml">
<OQPlan>P(node-attribute-equality-string,prefix,@patient-ref)</OQPlan>
</QueryPlanFunction>
<Step axis="child" name="reports-catalog" nodeType="element"/>
<Step axis="child" name="report" nodeType="element">
<OQPlan>P(node-attribute-equality-string,prefix,@patient-ref)</OQPlan>
</Step>
<Step axis="attribute" name="patient-ref" nodeType="attribute"/>
</Navigation>
<Where>
<Navigation>
<QueryPlanFunction result="collection" container="chb-system.dbxml">
<RQPlan>V(@patient-ref,=,'[to be calculated]')</RQPlan>
</QueryPlanFunction>
<Step axis="child" name="patient-index" nodeType="element"/>
<Step axis="child" name="patient" nodeType="element">
<RQPlan>V(@patient-ref,=,'[to be calculated]')</RQPlan>
</Step>
<Step axis="attribute" name="patient-ref" nodeType="attribute"/>
<DbXmlCompare name="equal">
<Variable name="pid"/>
</DbXmlCompare>
</Navigation>
</Where>
</ForBinding>
<Variable name="pid"/>
</FLWOR>
</XQuery>
Time in seconds for command 'queryPlan': 0.188 -
Trouble with indexing web repository
Hi All,
We've recently upgraded to TREX version 7.10.34.00, and I'm trying to get one of our web repositories to index.
I can get the web repository to index if I do not include any 'include' result resource filters in the crawler parameters, but it does not index if I do include one. I have had some success using an 'exclude' result resource filter, just not the 'include' one.
The name of the web site that I'm indexing is http://site1.domain.com. When I do not include any result filters, a sampling of the crawler log file looks like this:
INFO Jan 27, 2010 10:10:10 AM /mywebrepository/site1.domain.com http://site1.domain.com/ provided text/html
INFO Jan 27, 2010 10:10:10 AM /mywebrepository/site1.domain.com/files/index.htm http://site1.domain.com/files/index.htm provided text/html
INFO Jan 27, 2010 10:10:10 AM /mywebrepository/site1.domain.com/files/folder1/tableofcontents.htm
http://site1.domain.com/files/folder1/tableofcontents.htm provided text/html
When I go into TREX monitor, the queue has lots of documents that it indexes.
This is what my result filter settings look like:
Include Documents/Web-Pages: <checked>
Include Folders: <checked>
Include Links (Not Applicable For Web-Sites): <unchecked>
Case Sensitive (Folders And Documents/Web-Pages): <unchecked>
Item ID Mode (Documents/Web-Pages Only): include
Item ID Patterns (csv): *.html, *.htm
Mime Type Mode (Documents/Web-Pages Only): include
Mime Type Patterns (csv):
Minimum Content Size (Documents/Web-Pages Only): <blank>
Maximum Content Size (Documents/Web-Pages Only): <blank>
Maximum Age of Last Modification (Documents/Web-Pages Only): <blank>
With the result filter in place in the crawler parameters, I click the button to index. The crawler log files are generated, but nothing shows up in the TREX monitor queue for the index. The Time Stamp doesn't change either. I have tried changing the parameters in the 'Item ID Patterns' field, but it still doesn't work.
Is this a bug with this new version of TREX or am I not using this filter properly? This seemed to work when I was using TREX version 6.
Thanks!
-StephenSI was never able to resolve this problem but I have now retired the computer
-
How to Handle Multi Value Indexes
Hi all,
i'm a newbye and i've a class attribute which is a String Array, and i want to create a secondary index on this attibute.
I'm wondering which is the best solution to achieve this.For new users we recommend the DPL. It was created for ease of use.
However, the DPL doesn't support arrays as key fields. So you would have to concatenate the strings with a delimiter and use a single String field, or if the number of strings is fixed use a composite key with a separate String field for each element. Some references are:
http://www.oracle.com/technology/documentation/berkeley-db/je/java/com/sleepycat/persist/model/SecondaryKey.html
http://www.oracle.com/technology/documentation/berkeley-db/je/java/com/sleepycat/persist/model/KeyField.html
If you use the Base API or the Collections API you can use a tuple binding to create a secondary key DatabaseEntry from a String array. For example, you can call TupleOutput.writeString for each element.
http://www.oracle.com/technology/documentation/berkeley-db/je/java/com/sleepycat/bind/tuple/TupleBinding.html
What sort order for your key are you expecting? I assume you want the keys sorted by each string in array element order. That means you should NOT write the length of the array at the beginning of the key, since that will cause the sort order to be primarily based on the array length. Instead you can write an empty string as a terminator, or use TupleInput.available to test for whether you've read all strings in the key. The latter is recommended.
I assumed above that the array length is variable. If it is fixed length, you don't need a terminator.
If you don't care about key sort order, consider using a hash of the String array as the key. The hash field could be a single key field, which would work with the DPL.
I'm giving you a lot of general info. If you can be more specific about what you're doing, I can give more specific advice. I suggest that you start with one of the APIs and try doing what you want. Then you can post specifics about the questions you run into.
--mark
Maybe you are looking for
-
Hello, I've been having some problems trying to install SQL Sever 2005 on my local Vista machine. Using the ISO file that I've downloaded from the MSDN site (twice now) I get an error stating that the Sql.cab file is corrupt. I at first thougt that
-
Hi, I have a particular problem regarding Sales Return. The problem is as follows : While creating normal Sales the following a/c entires occur : Customer - Debit Revenue A/c - Credit (G/L XXX) But while creating the Sales Return, I want a seperate G
-
Product homepage for Java Desktop System?
Where can I learn more about the product?
-
Function HR_DISPLAY_BASIC_LIST
Hi, I modifying some reports that leave by the previous consultant, i meet this function HR_DISPLAY_BASIC_LIST in the programs, for value field with CURRENCY USD, its didnt list out in a proper format of USD, eventho i have already add waers field to
-
A Full list of task command for custom Button
Hi All I am looking for the exhaustive list of Task Commonad for the Custom Button , that i am preparing. In the 320 material, it is saying that "A Full list of task command is located in the online BPC Excell for help" can anybody please let me kn