Dynamic Service Registeration
Hi,
I have an existing service but it don't have the listener to that service.How can i register this service to a listener?...
while i executing the the "lsnrctl service" command i am getting the following output....
F:\Program Files>lsnrctl services
LSNRCTL for 32-bit Windows: Version 11.2.0.1.0 - Production on 03-JUL-2012 15:
:09
Copyright (c) 1991, 2010, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0
LOCAL SERVER
Service "SCGDBAXDB" has 1 instance(s).
Instance "scgdba", status READY, has 1 handler(s) for this service...
Handler(s):
"D000" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: MSSDEV01, pid: 1996>
(ADDRESS=(PROTOCOL=tcp)(HOST=MSSDEV01.MSS.LOCAL)(PORT=3817))
Service "SCGDBNAXDB" has 1 instance(s).
Instance "scgdbna", status READY, has 1 handler(s) for this service...
Handler(s):
"D000" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: MSSDEV01, pid: 704>
(ADDRESS=(PROTOCOL=tcp)(HOST=MSSDEV01.MSS.LOCAL)(PORT=4200))
Service "SCGDBNXDB" has 1 instance(s).
Instance "scgdbn", status READY, has 1 handler(s) for this service...
Handler(s):
"D000" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: MSSDEV01, pid: 7616>
(ADDRESS=(PROTOCOL=tcp)(HOST=MSSDEV01.MSS.LOCAL)(PORT=4000))
Service "orcl.MSS.LOCAL" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:359 refused:0 state:ready
LOCAL SERVER
Service "orclXDB.MSS.LOCAL" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Handler(s):
"D000" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: MSSDEV01, pid: 5556>
(ADDRESS=(PROTOCOL=tcp)(HOST=MSSDEV01.MSS.LOCAL)(PORT=2127))
Service "scgdba" has 1 instance(s).
Instance "scgdba", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:205 refused:0 state:ready
LOCAL SERVER
Service "scgdbn" has 1 instance(s).
Instance "scgdbn", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:189 refused:0 state:ready
LOCAL SERVER
Service "scgdbna" has 1 instance(s).
Instance "scgdbna", status READY, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:162 refused:0 state:ready
LOCAL SERVER
The command completed successfully
here the service name scgdb is not there..
and listener.ora file is...
# listener.ora Network Configuration File: E:\app\mssrs\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = E:\app\mssrs\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:E:\app\mssrs\product\11.2.0\dbhome_1\bin\oraclr11.dll")
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = MSSDEV01.MSS.LOCAL)(PORT = 1521))
ADR_BASE_LISTENER = E:\app\mssrs
and tnsnames.ora is
# tnsnames.ora Network Configuration File: E:\app\mssrs\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
SCGDBV =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MSSDEV01.MSS.LOCAL)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SCGDBV)
SCGDBN =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MSSDEV01.MSS.LOCAL)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SCGDBN)
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
SCGDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MSSDEV01.MSS.LOCAL)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SCGDB)
SCGDBA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MSSDEV01.MSS.LOCAL)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SCGDBA)
SCGDBNA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MSSDEV01.MSS.LOCAL)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SCGDBNA)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MSSDEV01.MSS.LOCAL)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.MSS.LOCAL)
Thanks in advance...
alter system register
Easy. Doc question, like most questions in this discussion forum.
Sybrand Bakker
Senior Oracle DBA
Similar Messages
-
Dynamic service binding in ESB
Hi,
I am trying to do dynamic binding in ESB (using service registry key) and facing the following issue:
1>I have added the uddi Inquiry url in the esb_config.ini:
uddiInquiryURL=http://ossi-1042.idc.oracle.com:8888/registry/uddi/inquiry/
2>In the ESB, I am invoking BPEL through soap service. There are 2 BPEL processes, say B1 and B2. I am giving the wsdl location of B1, and in the endpoint properties i am adding the registry key of B2 (so that I can find out if the registry key property is working):
<endpointProperties>
<property name="registryServiceKey" value="uddi:797f8d80-fbbf-11dc-a4bb-27e52611a4ba"/>
</endpointProperties>
When I run the instance, always B1 is getting invoked, proving that the registry key is not being used and thus dynamic service binding is happening.
Kindly help me out in this.
Thanks and regards,
PavanI tried applying the patch, but it gives the following error:
OPatch detects your platform as 207 while this patch 6133448 supports platforms:
0 (Generic Platform)
This patch is not suitable for this operating system.
Please contact support for the correct patch.
ERROR: OPatch failed during pre-reqs check.
OPatch returns with error code = 150
I downloaded for the OS I am on, but always the generic patch downloads; i guess this generic one should work for all platforms. Opatch version is 1.0.0.0.56. -
Broken Links on Dynamic Services page
The links to download the Dynamic Services kits are broken after the Eligibility Export restrictions page.
You might try the Dynamic Services message board for a faster response.
-
OSB Dynamic service call or dynamic route and transactions
Hello,
I've got the following problem in my OSB architecture for asynchronous incomming services.
OSB version is 10.3.1
ConnectionFactory is XA
Problem domain:
Dynamic service call or dynamic route within transaction boundary
Elements within transaction:
1. JMS Queue ->
2. Upper Proxy Service (De-queue) ->
3. Lower Proxy Service (Canonical Service) ->
4. Business Service (Data Service) ->
5. Database Adapter->
6. Database
Dynamic element
Upper Proxy Service (De-Queue) must be able to determine which Lower Proxy Service (Canonical Service) has to be called on the basis of the message taken from the JMS Queue without losing the transaction (this doesn’t work yet).
Already tried possible solutions:
• Make a service call dynamic by setting the $inbound name attribute. This results in a this property is read-only error.
• Use a Dynamic route instead of a service-call. This results in a loss of transaction. The message is deleted from the Queue without taking failure or success into account.
• Use a Dynamic route with a quality of service set to exactly once in the header. This seems to be ignored, results in a loss of transaction.
• Use a Dynamic route with an explicit reply with failure for errors. Results in a loss of transaction.
• Use a Dynamic Publish. This doesn’t fit the required flow because it has no response.
I hope someone can shed some light on this because I'm at a total loss. I found some references in the forum to what seems to be the same problem but without definite answers. A work-around is also a viable answer.
Regards,
Bas MulHi,
I'll try to clarify.
Upper proxy dequeues a message.
Depending on a value of a specific tag within the message a canonical proxy service (out of 5 at the moment but this numer could increase) has to be called (and be dynamic transform transformed to the format of the specific canonical).
The canonical service must then pass the message to a database adaper's business service which is responsible for the database insert/update/read.
If something in the chain from dequeue to database action goes wrong the message may not dissapear from the queue.
Somehow a dynamic route in the message flow between dequeue proxy and canonical proxy breaks the transaction.
Bas -
Dynamic Services Web Provider (NT)
Where can i find the "Dynamic Services Web Provider kit for Oracle9iAS Portal" for the
NT platform
thank'sNo doubt you've tried the Oracle Dynamic Services Downloads page and found that the downloads don't work. http://technet.oracle.com/software/products/dynamic_services/htdocs/listing.htm
I'm looking into getting that fixed. Thanks for your patience. -
Service billing for the material and service registers
Dear All,
I have doubt, if i do a sale of material 'X' and for the same material if i have to do a service invoice for rendering some service at the customer end. eg:- service charges for transportaion of the material to the customer place, doing installation charges for the material at the customer end etc.,
how should i go about it in SD .
A. Should i have to create a seperate mm master record for the list of service with the item category group LEIS
B. or is it possible to do a service invoice with out creating a sales order i.e directly based on the billing of the material 'x'
C. Is there any service tax register standard available. or if i wanted to create a service master should i have to ask the abaper to develop a z program for it
d. is this tcode can be used S_ALR_87012357 for service tax registers?
kindly update me on this
thanking you in advance
kumiHi
You need to create a material with item category group
a) LEIS (Service without Delivery) or
b) DIEN (Service with Delivery)
Based on the same you could bill the customer.
... Please.
with kind regards
Sundar -
Dynamic Service Invocation from OSB
Hi,
I have around 50 services in SOA Suite. I have to invoke these 50 services dynamically from OSB service based on the input parameters.
For example, The OSB proxy service will receive the input in the below format
<ServiceName>POService</ServiceName>
<OperationName>CreatePO</OperationName>
<ServiceURL>http://hostA:8011/PO/POService</POService>
<Payload>{XML Payload}</Payload>
Based on the input, it will invoke the POService using the ServiceURL, OperationName and the XML Payload.
To implement this, i created proxy based on WSDL for the above message structure. I also created one BS based on Any SOAP. The proxy will do the below activity
1) Extract all the details (url, payload, operation name) from the input
2) Replace the XMLpayload with $body
3) Use Route action to route it to BS. In the Route Request, i'm doing the below
a) Using Routing Option to Set the URI using <ServiceURL>
b) Using Insert Action setting the OperationName in $outbound/service/operation
When i tested the service, i'm able to dynamically invoke the target BPEL services whichever has only one operation in the WSDL. But it is failing when i invoke the services which has multiple operation in the wsdl. The request is going to BPEL service and failing with "Operation Unknown" error though i could see in the trace the operation is set correctly in the $outbound
Pls. let me know if anybody has done this or any idea on what is the issue here
Thanks!
Suresh$operation is mapped into HTTP SOAPAction header (for SOAP 1.1) in business services. Biz service uses the associated WSDL to do the mapping.
Hence, if the $operation contains something that is not in the Biz WSDL, the SOAPAction header is not formed, and the backend service cannot figure our the operation.
The backends that have only one operation, may not check the SOAPAction header, hence those do work.
You'll have to form SOAPAction HTTP header manually, based on some mapping table that you'll have to create for those services.
Vlad @ genericparallel.com -
Dynamic service invocation using ws addressing reply-to
Hi,
I am sending soap request contains ws addressing header with message id, reply-to values to invoke a async bpel process.
So can I invoke a web service inside async bpel using input reply-to value dynamically?
Do I need to create a dynamic partner link using invoke or can I use callbackclient?
Please share your inputs.
Thanks.Bharat,
You dont need a Business Event setup to invoke a BPEL process from PL/SQL unless you have a special case and you need to process the response from the BPEL process in a separate thread (or in background)..
For a straight call to BPEL process from PL/SQL, here is a sample script -
function "MYTEST0" return varchar2 AS
soap_request varchar2(30000);
soap_respond varchar2(30000);
http_req utl_http.req;
http_resp utl_http.resp;
resp XMLType;
i integer;
helpStr varchar2(30000);
BEGIN
soap_request:= '<?xml version = ''1.0'' encoding = ''UTF-8''?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns0="
http://xmlns.oracle.com/TestWS">
<env:Body>
<ns0:TestWSProcessRequest>
<ns0:input>abc</ns0:input>
</ns0:TestWSProcessRequest>
</env:Body>
</env:Envelope>
/* the BPEL process name is TestWS */
http_req:= utl_http.begin_request
( 'http://hostname:7777/orabpel/default/TestWS/1.0'
, 'POST'
, 'HTTP/1.1'
utl_http.set_header(http_req, 'Content-Type', 'text/xml');
utl_http.set_header(http_req, 'Content-Length', length(soap_request));
utl_http.set_header(http_req, 'SOAPAction', 'process');
utl_http.write_text(http_req, soap_request);
http_resp:= utl_http.get_response(http_req);
utl_http.read_text(http_resp, soap_respond);
utl_http.end_response(http_resp);
resp:= XMLType.createXML(soap_respond);
resp:= resp.extract('/soap:Envelope/soap:Body/child::node()',
'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"');
helpStr := '';
i:=0;
loop
helpStr := helpStr || substr(soap_respond,1+ i*255,250);
i:= i+1;
if i*250> length(soap_respond)
then
exit;
end if;
end loop;
return helpStr;
END; -
Hi,
[new to jcaps]
I have a sequence of services, say serviceA -> serviceB -> serviceC. I wish to add another service to that sequence, but I want to dynamically determine which JCD is called as ServiceD. The interface contract for all potential serviceD's is the same, so serviceC always passes the same thing.
Is this possible in some fashion in jcaps? connectivity map? einsight? java?
regards,
dk-You can "expose" a JCD via a request/reply JMS Queue. It could be a queue that is shared amongst multiple JCDs using selectors, as has been suggested. The JCD can be clever enough to figure out whether it is to send the response to a JMSReplyTo queue (which will make the response destination settable by the requestor and dynamic) or just send it (which will make the response destinaiton static, configured through the CM). The requestor JCD could use a requestReply() method specifyng an explicit destination and/or with agreed upon JMS Header field, for example JMSCorrelationID, configured, to cause the message to go to the right queue or to trigger the right jcd via a selector. If the requestor JCD derived the valur for the selector or the queue name from the message the whole arrangement would be dynamic and dependent on message content. Does this go somewhere towards satisfying the requirement?
-
Hi,
I'm developing a scenario in NetWeaver Developer Studio. What I will deliver to customers is a framework. It includes the definition of an interface. Customers should create their own component in which their classes will implement that interface. The customers should register the information (e.g. class name, JNDI name) of their own implementation into somewhere.
During runtime, my framework would read that information, dynamically instantiate the customer-defined component and call the service methods defined in the framework interface and implemented by customers.
How could I implement these requirements in NetWeaver? Dynamically loading class via class name from file system seems to be a solution, but not graceful enough. Because in this way customers have to put their classes directly in the file system. Ideally, they should deploy their components into NetWeaver. But if their components are implemented as EJB or J2EE Library, the caller framework have to know the meta data like Home Class name and Reference information in advance. That's not possible during framework development. Could somebody give out a good solution?I tried applying the patch, but it gives the following error:
OPatch detects your platform as 207 while this patch 6133448 supports platforms:
0 (Generic Platform)
This patch is not suitable for this operating system.
Please contact support for the correct patch.
ERROR: OPatch failed during pre-reqs check.
OPatch returns with error code = 150
I downloaded for the OS I am on, but always the generic patch downloads; i guess this generic one should work for all platforms. Opatch version is 1.0.0.0.56. -
Hi,
we are planning a project with NW GW and UI5. This solution should be deployed in 23 countries. The onliest pitfall we see so far is the fact that the interfaces for two services are not 100% fixed but for 80-90%. They differ in some fields. To do things worse we are currently working on the first 4 countries and don't know which fields will be the 10-20% variable fields.
Currently we think about two solutions:
- Add some dummy fields (for different data types).
- We use for the fixed 80% the known data types and for the variable part we take some dummy-fields as string and interpret them in the NW GW service.
How would you solve the issue? What do you think is the smartest solution for this purpose? What should I consider in this solution?
Greetings, VanessaCreating a purely Dynamic metadata would not be possible. Since OData approach is like a "declarative meta model" - where you need to define before hand how the metadata would be.
Metadata related operations are always expensive, so Gateway caches the metadata for faster operations. A dynamic metadata [even if you manage some how !] would make things very slow, as every time the framework deals with a new metadata for the same service. You code will also become very dynamic / conditional and complex. So may be you can rethink on your approach.
I have never done it, for a try you may,
1. Disable the cache in the Gateway level (from SPRO setting) [ this will impact all other services as well, I believe ] -- things are expected to become slow !!!!
2. You can follow a code based approach , with conditions to render dynamic metadata every time it is called
3. Dynamic handling in the Data provider class
4. Dynamic UI to understand this Model
This would make things slow and complex.. but hopefully you would achieve something you want at a high cost.
Better approach would be To develop service with known fields and enhancing it when more fields are know. May be you can pass some information using the HTTP headers if needed.
Atanu -
Listener dynamic service registration not working
I just set up an Oracle 11.2 instance for the first time and, for some reason the instance would not register with the listener. Any idea for how I would debug this to isolate where the problem is?
For now I have worked around the problem by manaully editing the listener.ora to specify the SID of my instance - this works OK, so I suppose all I want to know is to learn what the problem was to avoid future frustration.
'nstrctl services'was just showing up an instance for the CLRExtProc service and not my new instance.
The relevant parameters are:
SQL> show parameter service
NAME TYPE VALUE
service_names string PFS30
SQL> show parameter instance_name
NAME TYPE VALUE
instance_name string pfs30
SQL> show parameter listener
NAME TYPE VALUE
listener_networks string
local_listener string
remote_listener stringThe contents of my listener.ora was:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.117)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
ADR_BASE_LISTENER = D:\oracleThe listener was created using netca, also at 11.2. According to the doc, I believe that since the listener port is 1521, the LOCAL_LISTENER parameter is correct in being NULL.
I tried alter system register, to make sure it wasnt a delay problem. I also tried bouncing the listener and database.
Thanks for any help.Hi, thanks for the replies, especially that from Billy. Some more urgent stuff has come up which means I wont be able to get back to this until later today or tomorrow, but I thought I would post the what I got from the log file, trace file. My next step is to check over Billy's other points and consult My Oracle Support.
I am getting errors like this in the listener log every five minutes:
30-MAY-2012 10:10:21 * (CONNECT_DATA=(SID=PFS30)(CID=(PROGRAM=D:\oracle\product\11.2.0\dbhome_1\perl\bin\perl.exe)(HOST=ORACLE3)(USER=SYSTEM))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.117)(PORT=58824)) * establish * PFS30 * 12505
TNS-12505: TNS:listener does not currently know of SID given in connect descriptor
30-MAY-2012 10:10:25 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=ORACLE3$))(SERVICE_NAME=PFS30)) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.117)(PORT=58826)) * establish * PFS30 * 12514
TNS-12514: TNS:listener does not currently know of service requested in connect descriptorThe trace file has this:
2012-05-30 10:10:21.492596 : nscon:sending NSPTRF packet
2012-05-30 10:10:21.492659 : ntt2err:soc 864 error - operation=5, ntresnt[0]=524, ntresnt[1]=997, ntresnt[2]=0
2012-05-30 10:10:21.492678 : nstimarmed:no timer allocated
2012-05-30 10:10:21.492716 : snttcallback:op = 5, bytes = 0, err = 995
2012-05-30 10:10:21.492731 : ntt2err:soc 864 error - operation=5, ntresnt[0]=530, ntresnt[1]=995, ntresnt[2]=0
2012-05-30 10:10:21.492744 : nsclose:closing transport
2012-05-30 10:10:21.492798 : nsclose:global context check-out (from slot 5) complete
2012-05-30 10:10:21.492823 : nsgldissolve:Deallocating cxd 0x40bb600.For the record this is the output I got from lnsrctl that shows I dont have a registration
SQL> alter system register;
System altered.
SQL> quit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
C:\Windows\system32>lsnrctl status
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 30-MAY-2012 09:32:50
Copyright (c) 1991, 2010, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.117)(PORT=1521)))
STATUS of the LISTENER
Alias LISTENER
Version TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
Start Date 30-MAY-2012 09:30:27
Uptime 0 days 0 hr. 2 min. 26 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File D:\oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
Listener Log File d:\oracle\diag\tnslsnr\oracle3\listener\alert\log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.117)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully -
Dynamic Services problem with 309
I have tried a fresh install of ias 1022 and also an upgrade from 308 to 309 following the migration guides etc etc and I get the same problems on both installations when trying to test the congratulations page(ie /dswebprovider/DSWebProvider) -
I get no reponse from the server. Upon checking the apache error log, I see that it is trying to resolve this path through the default document path 'htdocs'. The error is like this:
File does not exist: d:/oracle/isuites/apache/apache/htdocs/dswebprovider/DSWebProvider
This worked previously in 308 but has now mysteriously stopped working! Also, running the DSWPClasspathCheckup jsp gives me a fail for Oracle JDBC - 'oracle.ds.DSException: DS-010: Not connected'. This also worked in 308.
Anyone encounter the same problem and found a workaround?I have run into the same problem except that I did fresh install of database (8.1.7) and IAS (1022). In the log it is written that /apache/htdocs/dswebprovider/DSWebProvider
doesn't exist. Instead of going to the dswebprovider zone it starts to look in htdocs. What can be wrong? Username and passwords is correct. -
Getting WCMException while configuring a repository service
Hi KM Experts,
I wrote a program to create a repository service, to start the approval process automatically, and select it for the required repository manager. I restarted the servlet engine, but still the status of newly added document is 'In Progress' and when I tried to submit it manually its throwing the following exception -
Could not execute command 'com.sapportals.wcm.rendering.uicommand.cm.UIStatemanagementCommand'
Below is the program written by me -
package com.infy.autoapprove;
import com.sapportals.wcm.repository.IResource;
import com.sapportals.wcm.repository.ResourceFactory;
import com.sapportals.wcm.repository.service.AbstractRepositoryService;
import com.sapportals.wcm.repository.service.IRepositoryServiceFactory;
import com.sapportals.wcm.repository.service.ServiceNotAvailableException;
import com.sapportals.wcm.repository.service.statemanagement.IResourceTransition;
import com.sapportals.wcm.repository.service.statemanagement.IStatemanagementManager;
import com.sapportals.wcm.repository.service.statemanagement.IStatemanagementResource;
import com.sapportals.wcm.repository.manager.IResourceEventReceiver;
import com.sapportals.wcm.repository.manager.IRepositoryManager;
import com.sapportals.wcm.repository.manager.ResourceEvent;
import com.sapportals.wcm.util.events.IEvent;
import com.sapportals.wcm.crt.component.*;
import com.sapportals.wcm.crt.configuration.*;
import com.sapportals.wcm.IWcmConst;
import com.sapportals.wcm.WcmException;
import java.util.Collection;
// implements IMyNewRepositoryService interface
Note: IReconfigurable and IResourceEventReceiver interfaces are optional
public class AutoApprove extends AbstractRepositoryService implements IReconfigurable, IResourceEventReceiver {
private static final String TYPE = "AutoApprove";
public AutoApprove() {
super();
// Do not add code here. Add it to startUpImpl() instead
public String getServiceType() {
return AutoApprove.TYPE;
protected void startUpImpl(Collection repositoryManagers) throws ConfigurationException, StartupException {
// implement this method as follows:
// - Verify configuration data
// - Get references to other needed (global) services
// - Check whether other repository services (this service depends on) are also assigned to the repository managers
// - Usually the service registers itself for certain events at all repository managers
try {
catch (Exception e) {
throw new StartupException(e.getMessage(), e);
protected void shutDownImpl() { }
protected void addRepositoryAssignment(IRepositoryManager mgr) throws ServiceNotAvailableException {
// Implement this method: Usually the service registers itself for certain events at the repository manager.
try
mgr.getEventBroker().register(this, new ResourceEvent(ResourceEvent.CREATE_CHILD, null));
catch(WcmException e)
protected void removeRepositoryAssignment(IRepositoryManager mgr) throws WcmException {
// Implement this method: Usually the service must unregister itself as an event handler.
public void reconfigure(IConfiguration config) throws ConfigurationException {
this.stateHandler.preReconfigure();
// check the new configuration data
try {
catch (ConfigurationException ex) {
this.stateHandler.postReconfigure(ex);
throw ex;
this.config = config;
this.stateHandler.postReconfigure();
public void received(IEvent event) {
IResource resource = (IResource)event.getParameter();
try
// get the statemanagement service from the resource
String rid = resource.getRID().toString();
if(rid.equals("/documents/TestScenario/XML Form Content/"+resource.getName()))
IRepositoryServiceFactory factory = ResourceFactory.getInstance().getServiceFactory();
IStatemanagementManager statemanagement = (IStatemanagementManager)factory.getRepositoryService(resource, IWcmConst.STATEMANAGEMENT_SERVICE);
IStatemanagementResource sResource = statemanagement.getStatemangementResource(resource);
IResourceTransition transition = sResource.getTransition("lbl.submit");
// if everything is correct than transition is not null
if (transition != null)
transition.execute();
}catch(Exception e){
e.printStackTrace();
Kindly help me out as I am not able to figure out the issue.
Thanks in Advance,
SaurabhHi Experts,
Any help on this ?
Regards,
Saurabh -
KM Repository Service for creating a folder structure
Hi All,
We have a requirement in KM. Whenever a folder is created inside a folder (say '/documents/testFolder') ... .. a couple of subFolders need to be created inside this new folder.
For example, if the new folder's name being created is <i>parentFolder1</i> then, the following structure shud be created inside this folder.
parentFolder1
|--> subFolder1
|--> subFolder11
|--> subFolder12
|--> subFolder2
|--> subFolder21
I tried to implement a KM repository service::
My Rep Service code::
package com.test;
import java.util.Collection;
import java.util.Iterator;
import com.sap.tc.logging.Location;
import com.sapportals.config.fwk.CannotAccessConfigException;
import com.sapportals.config.fwk.Configuration;
import com.sapportals.config.fwk.IConfigClientContext;
import com.sapportals.config.fwk.IConfigManager;
import com.sapportals.config.fwk.IConfigPlugin;
import com.sapportals.config.fwk.IMutableConfigurable;
import com.sapportals.config.fwk.InitialConfigException;
import com.sapportals.portal.security.usermanagement.UserManagementException;
import com.sapportals.wcm.WcmException;
import com.sapportals.wcm.crt.component.IReconfigurable;
import com.sapportals.wcm.crt.component.StartupException;
import com.sapportals.wcm.crt.configuration.ConfigurationException;
import com.sapportals.wcm.crt.configuration.IConfiguration;
import com.sapportals.wcm.repository.AccessDeniedException;
import com.sapportals.wcm.repository.ICollection;
import com.sapportals.wcm.repository.IResource;
import com.sapportals.wcm.repository.NotSupportedException;
import com.sapportals.wcm.repository.Property;
import com.sapportals.wcm.repository.ResourceException;
import com.sapportals.wcm.repository.manager.IRepositoryManager;
import com.sapportals.wcm.repository.manager.IResourceEvent;
import com.sapportals.wcm.repository.manager.IResourceEventReceiver;
import com.sapportals.wcm.repository.manager.ResourceEvent;
import com.sapportals.wcm.repository.service.AbstractRepositoryService;
import com.sapportals.wcm.repository.service.ServiceNotAvailableException;
import com.sapportals.wcm.util.config.ConfigCrutch;
import com.sapportals.wcm.util.events.IEvent;
// implements IMyNewRepositoryService interface
Note: IReconfigurable and IResourceEventReceiver interfaces are optional
public class MytestRepositoryService extends AbstractRepositoryService implements IReconfigurable, IResourceEventReceiver {
private static final String TYPE = "com.test.MytestRepositoryService";
private Collection repositoryManagers;
private static final Location log = Location.getLocation(MytestRepositoryService.class);
//variables
private static final String PLUGIN_FOLDERCREATION_SERVICE = "/cm/repository_services";
private static final String CONFIGCLASS_FOLDERCREATION_SERVICE = "com.test.MytestRepositoryService";
private static final String readPlugins[] = { PLUGIN_FOLDERCREATION_SERVICE };
public static final String PROP_MYFOLDER = "myFolder";
public MytestRepositoryService() {
super();
// Do not add code here. Add it to startUpImpl() instead
public String getServiceType() {
return MytestRepositoryService.TYPE;
protected void startUpImpl(Collection repositoryManagers) throws ConfigurationException, StartupException {
// implement this method as follows:
// - Verify configuration data
// - Get references to other needed (global) services
// - Check whether other repository services (this service depends on) are also assigned to the repository managers
// - Usually the service registers itself for certain events at all repository managers
try {
catch (Exception e) {
throw new StartupException(e.getMessage(), e);
this.repositoryManagers = repositoryManagers;
Iterator it = repositoryManagers.iterator();
while (it.hasNext()){
try {
addRepositoryAssignment((IRepositoryManager) it.next());
} catch (ServiceNotAvailableException e) {
e.printStackTrace();
protected void shutDownImpl() {
Iterator it = repositoryManagers.iterator();
while (it.hasNext()){
try {
removeRepositoryAssignment((IRepositoryManager) it.next());
} catch (WcmException e) {
e.printStackTrace();
protected void addRepositoryAssignment(IRepositoryManager mgr) throws ServiceNotAvailableException {
// Implement this method: Usually the service registers itself for certain events at the repository manager.
try {
// mgr.getEventBroker().register(this, ResourceEvent.ALL_TEMPLATE);
mgr.getEventBroker().register(this, new ResourceEvent(ResourceEvent.CREATE_COLLECTION, null));
} catch (WcmException e) {
e.printStackTrace();
protected void removeRepositoryAssignment(IRepositoryManager mgr) throws WcmException {
// Implement this method: Usually the service must unregister itself as an event handler.
// mgr.getEventBroker().unregister(this, ResourceEvent.ALL_TEMPLATE);
mgr.getEventBroker().unregister(this, new ResourceEvent(ResourceEvent.CREATE_COLLECTION, null));
public void reconfigure(IConfiguration config) throws ConfigurationException {
this.stateHandler.preReconfigure();
// check the new configuration data
try {
catch (ConfigurationException ex) {
this.stateHandler.postReconfigure(ex);
throw ex;
this.config = config;
this.stateHandler.postReconfigure();
public void received(IEvent event) {
IResourceEvent myEvent = (IResourceEvent) event;
IResource resource = (IResource) myEvent.getParameter();
String repositoryPath = "";
String parentPath = "";
//get the configuration...
try {
IConfigClientContext context = IConfigClientContext.createContext(ConfigCrutch.getConfigServiceUser());
IConfigManager cfg = Configuration.getInstance().getConfigManager(context);
IConfigPlugin configPlugin = cfg.getConfigPlugin(PLUGIN_FOLDERCREATION_SERVICE);
if (configPlugin != null) {
IMutableConfigurable[] configurables = configPlugin.getConfigurables(CONFIGCLASS_FOLDERCREATION_SERVICE, false);
for (int i = 0; i < configurables.length; i++) {
IMutableConfigurable configurable = configurables<i>;
if (configurable.getConfigClass().getName().equals(CONFIGCLASS_FOLDERCREATION_SERVICE)) {
// now get the attribute value...
repositoryPath = configurable.getPropertyValue(PROP_MYFOLDER); //// "documents/parentFolder1"
} catch (InitialConfigException e2) {
e2.printStackTrace();
} catch (CannotAccessConfigException e2) {
e2.printStackTrace();
} catch (UserManagementException e2) {
e2.printStackTrace();
try {
parentPath = resource.getParentCollection().getRID().toString();
} catch (AccessDeniedException e1) {
e1.printStackTrace();
} catch (ResourceException e1) {
e1.printStackTrace();
if(repositoryPath.equals(parentPath))
//write my code here
if (resource != null && (resource.isCollection()) )
ICollection parentFolder = (ICollection) resource;
try {
<b>parentFolder.createCollection("subFolder1",null);</b>
} catch (NotSupportedException e) {
e.printStackTrace();
} catch (AccessDeniedException e) {
e.printStackTrace();
} catch (ResourceException e) {
e.printStackTrace();
<b>...MytestRepositoryService.co.xml:</b>
- <Configurable configclass="com.test.MytestRepositoryService">
<property name="name" value="com.test.MytestRepositoryService" />
<property name="active" value="true" />
<i> <property name="myFolder" value="/documents/parentFolder1" /></i>
<property name="description" />
</Configurable>
<b>...MytestRepositoryService.cc.xml:</b>
- <ConfigClass name="com.test.MytestRepositoryService" extends="RepositoryService">
<attribute name="class" type="class" constant="com.test.MytestRepositoryService" />
</ConfigClass>
Have i done it right?? Where am i going wrong??? Plz advice.
I need to 'myFolder' as a configurable property in KM's <i>Content Management --> Repository Services</i> section.
Thanks!
Regards,
SK.Hi,
I haven't check your code but you know that you can archive the same without writing a portal componente by using the template feature. It is a simple customizing. See http://help.sap.com/saphelp_nw70/helpdata/en/55/83bd402b8d8031e10000000a1550b0/frameset.htm
Best Regards
Frank
Maybe you are looking for
-
I need How to retrive data from sap r/3 using weblogic server
Hi every body . I need how to retrieve r/3 data using BAPI methods and using weblogic server very critical
-
I need an Array in my JAVA CODE
I need an array in my java code for my last class in my Java 1 course my code does compile in dos using javac,....and it does work It is a mortgage calculator for 3 loans of 3 different years loaned,.... and each have a different interest rate. I nee
-
Can somebody explane how can I get iweb to open a new site or page?
I can't start a new site or page...since I've moved some page among different sites and the program got stuck. I did quit to start it again, but now it's not possibel to use iWeb.
-
Why we will go for Remote cube
Hi experts, Why we will go for Remote cube instead of Basic cube, What are the advantages of Remote cube ? At what circumstances we wii go for Remote cube ?
-
Repost: Simple question but no one answers
I have to repost this, there is no way I can find the solution on the forums. Tried everything... Scenario: UIX page with READ-ONLY table. User selects some row and clicks button. Event fires. How to retreive selected READ-ONLY row???? Please help, t