Transaction Locking during multiple Webservice - persistent webs sessions

Hi All,<br>
<br>
Yesterday evening we had a discussion concerning ESA architecture. We want to create (web)services for accessing the SAP business objects (using XI) and use these (web)services via visual composer, webdynpro or custom java development.<br>
<br>
It does not seem a big problem to perform creations and reads of transaction, but when we want to change objects, we saw some problems concerning locking/commiting and rollbacks.<br>
<br>
From our GUI we would like to be able to go in edit mode and from that moment on, the transaction should be locked. We then want to change certain parameters and commit only when we push the save button.<br>
<br>
We can invoke a webservice wich tries to lock the transaction, but at the moment the XI scenario is completed (=the lock is created), the program at SAP side (=proxy in our case) is also finished and the lock is automaticly removed. How can we do locking, when using webservices via XI?<br>
<br>
The problem of the rollback and commit we can partially solve by putting more logic in the GUI, but we don't want to do that. How can we do a change of a business object and remember this change without doing a commit on the SAP system.... . Same problem for the rollback.<br>
<br>
Is there a away to keep a session "alive" during multiple webservice calls or to simulate it? Every webservice invokation happens in a different context...isn't it?<br>
<br>
<br>
<b>Just to make it a bit more clear.</b><br>
<br>
Suppose we create 6 service related to the business object bupa (business partner).<br>
- read<br>
- change<br>
- commit<br>
- rollback<br>
- lock<br>
- unlock.<br>
<br>
We create a GUI which uses these services.<br>
<br>
<b>Step1:</b> we want to see bupa in detail, so the read webservice is called and the retrieved details are shown in the GUI<br>
<b>Step2:</b> we want to go in edit mode, so the lock webservice is called to lock the bupa. The bupa should stay locked, untill the unlock is called. Here occurs the problem. The webservice lock is called, XI will trigger the proxy on the SAP system. This proxy will lock the bupa. As soon as the proxy-program is completed, the bupa lock will automaticly be removed ... . We want to keep this lock!<br>
<b>Step3:</b> we change the bupa using the change webservice. Only the user who locked the bupa should be able to change it.<br>
Problem concerning the locking occurs: standard we don't know who locked the bupa (this is done by the generic RFC user, configured in sm59). Should we pass some kind of GUID towards the proxy and build some additional logic to know which end-user in fact locked it... . Using the userid isn't sufficient, because a user could logon multiple time simultanously.<br>
<br>
Another problem is that we want to change the bupa, without having to do a commit yet.De commit should be called only when pushing the save button. When the proxy is ended and we did not do a commit, the changes are lost normally ... .<br>
<br>
What we in fact want to do is Simulate the bsp behaviour.<br>
<b>Step4:</b>We want to perform a save of the things we changed or a reset. This means the commit or rollback webservice is called.<br>
<b>Step5:</b> We want to unlock the bupa by calling the unlock webservice.<br>
<br>
<br>
Please give me your comments.<br>
<br>
Kind regards<br>
Joris<br>
<br>
Note: Transaction Locking during multiple Webservice "sessions".
Message was edited by:
        Joris Verberckmoes

There are multiple strategies how to resolve this. They require that the last change time is available in the changed object, and also that the client keeps the value of the change time when it read the data.
1. First one wins
Immediately before posting the changes, the current change time is read from the server. In case it is different from the client buffer, then the client changes are discarted.
Example:
1. Client A reads data
2. Client B reads data
3. Client B changes its buffer
4. Client B checks if server change time has changed (result is no)
5. Client B writes his changes to the server
6. Client A changes its buffer
7. Client A checks if server change time has changed (result is yes)
8. Client A discarts its changes
2. Last one wins
Easy. Client just writes his changes to the server, overwriting any changes that might have occured since it read the data.
Example:
1. Client A reads data
2. Client B reads data
3. Client B changes its buffer
4. Client B writes his changes to the server
5. Client A changes its buffer
6. Client A writes its changes to the server -> changes from client B are lost
3. Everybody wins
Most complicated. In case of concurrent changes, the client is responsible for merging his changes with the changes from other clients and to resolve any conflicts.
Example:
1. Client A reads data
2. Client B reads data
3. Client B changes its buffer
4. Client B checks if server change time has changed (result is no)
5. Client B writes his changes to the server
6. Client A changes its buffer
7. Client A checks if server change time has changed (result is yes)
8. Client A merges its changes with changes from client B
9. Client A writes his changes to the server
"Last one wins" is definitely not water-proof. But even with the other strategies, data can potentially get lost in the short timeframe when the change time is checked and the actual update.
To make it more secure, server support is required. E.g. the client could pass the change time from its read access to the server. The server can then reliably reject the update if the change data has been updated in beetween by another client.

Similar Messages

  • Exception during call webservice from Web Dyn Pro application

    I receive exception when execute call to webservice. I found place where it fall, it is in stub classmdp\company\wd\_comp\src\packages\com\accenture\mdp\company\model\companybasic\proxies\Config1BindingStub.java
    in method below, in line
    this.transportBinding.call(this.stubConfiguration,this.globalProtocols,_getOperationProtocols("filterCompany"));
    public com.accenture.mdp.company.model.companybasic.proxies.types.p4.FilterCompanyResponse filterCompany(com.accenture.mdp.company.model.companybasic.proxies.types.p4.FilterCompany parameters) throws java.rmi.RemoteException,com.accenture.mdp.company.model.companybasic.proxies.Exception,com.accenture.mdp.company.model.companybasic.proxies.MDPException {
        try {
          super._beginLogFrame();
          // Operation input params initialization
          this.inputParams = new ServiceParam[1];
          this.inputParams[0] = new ServiceParam();
          this.inputParams[0].isElement = true;
          this.inputParams[0].schemaName = new QName("urn:CompanyServiceVi","filterCompany");
          this.inputParams[0].name = "parameters";
          this.inputParams[0].contentClass = com.accenture.mdp.company.model.companybasic.proxies.types.p4.FilterCompany.class;
          this.inputParams[0].content = parameters;
          // Operation output params initialization
          this.outputParams = new ServiceParam[1];
          this.outputParams[0] = new ServiceParam();
          this.outputParams[0].isElement = true;
          this.outputParams[0].schemaName = new QName("urn:CompanyServiceVi","filterCompanyResponse");
          this.outputParams[0].name = "parameters";
          this.outputParams[0].contentClass = com.accenture.mdp.company.model.companybasic.proxies.types.p4.FilterCompanyResponse.class;
          // Operation faults initialization
          this.faultParams = new ServiceParam[2];
          this.faultParams[0] = new ServiceParam();
          this.faultParams[0].isElement = true;
          this.faultParams[0].schemaName = new QName("urn:CompanyServiceWsd/CompanyServiceVi","filterCompany_java.lang.Exception");
          this.faultParams[0].name = "errorPart";
          this.faultParams[0].contentClass = com.accenture.mdp.company.model.companybasic.proxies.Exception.class;
          this.faultParams[1] = new ServiceParam();
          this.faultParams[1].isElement = true;
          this.faultParams[1].schemaName = new QName("urn:CompanyServiceWsd/CompanyServiceVi","filterCompany_com.accenture.mdp.common.exceptions.MDPException");
          this.faultParams[1].name = "errorPart";
          this.faultParams[1].contentClass = com.accenture.mdp.company.model.companybasic.proxies.MDPException.class;
          com.accenture.mdp.company.model.companybasic.proxies.types.p4.FilterCompanyResponse parametersTemp;
          this.transportBinding.setTypeMappingRegistry(this.typeRegistry);
          this.transportBinding.startOperation(this.inputParams,this.outputParams,this.faultParams);
          // Binding Context initialization
          this.bindingConfiguration.clear();
          bindingConfiguration.setProperty("soapAction","");
          bindingConfiguration.setProperty("style","document");
          bindingConfiguration.setProperty("transport","http://schemas.xmlsoap.org/soap/http");
          PropertyContext bindingConfigurationX;
          bindingConfigurationX = bindingConfiguration.getSubContext("output");
          bindingConfigurationX.setProperty("operationName","filterCompany");
          bindingConfigurationX.setProperty("use","literal");
          bindingConfigurationX = bindingConfiguration.getSubContext("input");
          bindingConfigurationX.setProperty("operationName","filterCompany");
          bindingConfigurationX.setProperty("use","literal");
          bindingConfigurationX.setProperty("parts","parameters");
          super._fillEndpoint(bindingConfiguration);
          _buildOperationContext("filterCompany",this.transportBinding);
          this.transportBinding.call(this.stubConfiguration,this.globalProtocols,_getOperationProtocols("filterCompany"));
          _setEndpoint((String) bindingConfiguration.getProperty(com.sap.engine.services.webservices.jaxrpc.wsdl2java.ClientTransportBinding.ENDPOINT));
          if (this.faultParams[0].content != null) {
            throw (com.accenture.mdp.company.model.companybasic.proxies.Exception) this.faultParams[0].content;
          if (this.faultParams[1].content != null) {
            throw (com.accenture.mdp.company.model.companybasic.proxies.MDPException) this.faultParams[1].content;
          parametersTemp = (com.accenture.mdp.company.model.companybasic.proxies.types.p4.FilterCompanyResponse) this.outputParams[0].content;
          return parametersTemp;
        } catch (com.accenture.mdp.company.model.companybasic.proxies.Exception e) {
          throw e;
        } catch (com.accenture.mdp.company.model.companybasic.proxies.MDPException e) {
          throw e;
        } catch (javax.xml.rpc.soap.SOAPFaultException e) {
          throw e;
        } catch (java.lang.Exception e) {
          throw new RemoteException("Service call exception",e);
        } finally {
          super._endLogFrame("filterCompany");
    I receive Service call exception; nested exception is: java.lang.NullPointerException
    May be anybody could suggest me how can I get more information about of  reason of this exceprion ?
    How to repair it ?

    Check the following path in your server:
    If you are using NW04s: :\usr\sap\<InstanceName>\JC00\j2ee\cluster\server0\log\
    If you are using CE: :\usr\sap\<InstanceName>\J00\j2ee\cluster\server0\log.
    If you are using CE: [Log Viewing with the SAP MC|http://help.sap.com/saphelp_nwce10/helpdata/en/44/f71b59e38e2462e10000000a1553f7/content.htm]
    Bala

  • Session between multiple Webservice calls from PI7.0

    Hello XI SDNers,
    I am unable to overcome my Webservice session problem using SOAP (Axis) adapter. My scenario is as follows:
    I am calling a external Webservice deployed in Axis webservice engine from PI7.0, during my first call:  I call synchronous "Login" webservice and I became the response "User is Logged in"
    during my second synchronous call "GetItem", the webservice returns "The user doesn't have valid session". The two synchronous calls are executed from same scenario one after another!
    I lost my session after the "Login". Is there any way in PI 7.0 to maintain the session?
    Note: I tried the same scenario using XML SPY SOAP client, it is working!!!  it is maintaining the session between multiple webservice calls.
    Is there any suggestions to overcome this problem?
    Thanks and regards,
    Satish.

    Hi Satish,
       We are working on the same sort of scenarios, where we have to call more than one webservice in a sequential fashion using the same session id details.
        What we did was we built new xsds adding session details node using the webserive request and response xsds. And we are maintaining a sessions table which contains session id and  status fields in PI. So we send webservice request with the session id details. We wrote an UDF to get the session details from PI and set the status field as busy so that no other request uses the same session details.
       Webserive response again contains the sessions details which can be used for the next webservice request.
      Finally after all the calls set back the status to Active in PI table.
    Webservice Calls From a User Defined Function
    /people/bhavesh.kantilal/blog/2006/11/20/webservice-calls-from-a-user-defined-function
    Hope this helps.
    Thanks,
    Vijaya.

  • Handle LOCAL files during a web session

    I'm developing an application with Forms 6i.
    Please consider the following command line:
    text_io.fopen('c:\tmp.txt','r')
    In client/server mode the file "tmp.txt" is searched on the local computer (on
    the client).
    In web mode the file "tmp.txt" is searched on the server.
    How can I open the "tmp.txt" file on the CLIENT computer, also in web mode?
    Is there a way to handle local files during a web session?
    Thank you in advance!

    There is a java upload bean available on OTN (somewhere in the javabean/pjc section of examplecode) ... this one lets you do what you want, but it's violating the java sandbox functionality and hence need to be certified/signed to use in a browser - which i personally think is somehwat a hassle ... also it just copies the file to the middletier - you still will need to then read it from there.
    i've found that using the webdb/portal approach for file handling is much easier. if you alerady run on web then you probably anyway have installed 9ias or a webdb/portal server somewhere ... using web.show_document builtin and a very small webdb procedure (something like 10 lines of code) will allow you to easily upload a file directly into the database into an blob!
    have a search through this forum ... i posted a working example a few days back (somewhen last week) on this forum!
    Cheers,
    Stefan

  • Can't record web session in Web Application Transaction Monitoring using IE10 (Tried under Windows Server 2008R2 and 2012)

    Hi,
    In Operations Manager Console 2012 SP1 including RU2 I am trying to record a web session in Web Application Transaction Monitoring.
    I have check that:
    The add-on (Microsoft Web Recorder Helper) 64bit is Enabled.
    The 64bit version of IE10 is running/launched. See this link for how to modify your registry key if needed:  http://kevingreeneitblog.blogspot.co.uk/2012/01/scom-2012-recording-web-browser-session.html
    I have tried both on a Windows 2008R2 and 2012 server, but the recorder is not showing up as can been seen from Kevin's Blog (link above).
    Any Ideas?

    I managed to get this working on both Windows 8 IE10 and server 2012 IE10. Tested on SCOM 2012 SP1 UR2 and UR3. I've done this process in lab and production several times so hopefully this helps you out.
    Checklist:
    1. Ensure that the 64bit IE10 is launching when the "start web-capture" is started in SCOM.
    2. Enable IE10 internet options:
    a: Advanced - Security - Enable Enhanced Protected Mode
    b: Advanced - Browsing - Enable third-party browser extensions
    3. Close all running IE sessions and open the Registry Editor
    4. Registry Change (No reboot needed)
    - Browse to the following regkey:
    HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main
    - Add a new DWORD called TabProcGrowth and set it to 0
    5. Registry Change (No reboot needed)
    - Browse to the following regkey:
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\Component Categories64\
    -You should see two subkeys labeled: (These are the cached BHO IE objects related to the Web Recorder)
    {00021493-0000-0000-C000-000000000046}
    {00021494-0000-0000-C000-000000000046}
    - Delete only the above two mentioned keys (This will force IE to recache them next launch)
    6. Try to start the web capture again from SCOM 2012 SP1.
    7. When IE10 Launches enable the add-on again if you are prompted.
    8. If you still don't see the Web-Recorder pane in IE you can now show it by:
     - View - Explorer bars - Web Recorder

  • Retain variable values across web templates during a web session

    Hi all,
    How can we let web template get variable values from another template's variable values so as to keep the same entry values as previous report run?
    For example 0vendor has a variable (for single, mandory) used in all  vendor related web templates. "vendor1" was entered for the second template.
    I tried to use "SET/GET PARAMETER" in variable user exit. It works in BI with RSRT,  but it doesn't work with Bex or Web template. Looks like web session is not sync with the ABAP stack.
    How about using cookie? How to create/reset cookie in variable user exit? Can we get variable values from web server memory or user session data?
    Please share your thought !
    Thanks for helping!
    David

    Hi Arun,
    All the web templates are randomly run by user, there are no set of templates run after one template. Any templates can run after any other web template.
    Basically we link  web templates with portal menu items. any report can be run by any sequence. The thing the new report need to take the previous selection values from common variables.

  • Transaction Locking

    hi,
    Quick question. I have a session bean which I am using to access my database. I execute the SQL using prepared statements. In one case for an insert I perform the following:
    1. Insert a records
    2. Read a sequence to get the id of the previous insert
    3. Insert another record in another table with the id of the first as an attribute.
    My question is concerning transactions. During this sequence of events do I have a lock on all this data during all three queries. Or can another user increment the sequence during the execution of these SQL queries? Do I have to set a lock manually?
    Thanks
    Steve

    Hi Steve,
    You can group these operations inside a single transaction to make it ACID. You also need to configure the transaction isolation level of the underlying datasource (or connection) used by your transaction. In any event, your application should not attempt to manage these transaction details.
    -cheng

  • Transaction Lock

    hello
    is any body have any example scenario
    How to make transaction lock on a table ???

    It sounds like you are looking for a standby database (i.e. DataGuard). That would generally require that the standby operating system match the production operating system. Do you have another Solaris box that you could fail over to?
    Unless you want to fail over to a version of the database created during the export process and lose all the transactions made in the production database since then, you cannot use export and import to build a standby. You need to use your RMAN backup and apply the archived logs generated since the backup. But you're not going to be able to recover the RMAN backup on to a Linux box if the backup is from a Solaris server.
    Justin

  • Cannot change transaction isolation during distributed transaction

    Hi All,
    When ever the IPortalComponent session expires my application is throwing Null pointer exception. So I am catching the NullPointer exception and then reloading the page again. It is working in frontend without any issues.
    But in the error log monitor(nwa) I can see the below error when reloading the page after component session expires.
    Cannot change transaction isolation during distributed transaction and when the connection is shared. DataSource name: "PRODB2
    As per my knowledge I understood that this is happening beacuse application is trying to recreate a new connection pool while one pool instance is alive.
    If this is correct can any one tell me how to destory the pool of current session when reloading the page.
    Thanks in Advance,
    Chinna.

    What was the solution to the problem ?

  • Remove transaction codes from multiple roles at a time

    Hello,
    how to remove transaction codes from multiple roles at at time?
    Thank you in Advance.

    Hi Vanita,
             Why do you want to remove a t-code from all the roles. Are you no longer going to use the t-code. If this is the case then you can lock the transaction code in T-code SM01 so that no one can use it. But this would effect other users as well, it should only be locked if no one should use the particular T-code.
    Another alternative is to write a program to remove the particular T-Code from the table AGR_TCODES where the relation ship between the role and t-code is stored.
    Thanks.

  • Multiple Webservices

    Hi,
    How to add multiple webservices in a Single Ear file.
    My Requirement:
    I Have a ear which have different EJB jars for different modules.
    Now I want to publish different EJB modules as webservice.
    If I am right , now only one service can be published from
    one Ear. How to make my other modules also published as webservice
    from same EAR.
    regards
    Boney Jose

    Hello,
    Manoj has an example of packaging multiple web services [1]. See if
    this example helps.
    HTH,
    Bruce
    [1]
    http://manojc.com/?sample12
    Boney Jose wrote:
    >
    Hi,
    How to add multiple webservices in a Single Ear file.
    My Requirement:
    I Have a ear which have different EJB jars for different modules.
    Now I want to publish different EJB modules as webservice.
    If I am right , now only one service can be published from
    one Ear. How to make my other modules also published as webservice
    from same EAR.
    regards
    Boney Jose

  • Transaction Lock in Forms (TM,TX) How to get around?

    Hi,
    what is industry practice to avoid blocking locks bringing application processing to a standstill.
    I have few core table in material module e.g. material master, request, receipt, issues, whenever multiple user start using their respective forms such ac material_request, material_receipt, material_issue, Transaction Locks are acquired. and unless and until blocking user commits his transaction nobody else is able to work. how to get around this problem.
    There is lot of tech.material on net which tells me how to find blocking lock and objects, but nobody is giving answer how to avoid this situation.
    what is industry practice to avoid blocking locks bringing application processing to a standstill.
    regards

    Risky Solution !!
    I am facing more problem in to material requisition form, because many user want to request material. they open this form start entry and when they stuck for information they just keep that form open, in background the tables are locked because of change in data-block. now what do i do.
    regards

  • Batch Lock during parallel goods movement for other Plant

    Salute Masters!!
    I need your valuable suggestion!
    The Scenario is:
    User1 is doing the following transaction-Create stock transport PO for a material (plant 1000 to plant 1100)
    Create outbound delivery VL10B (Goods issue is also done- and he is in the screen MIGO (goods receipt in plant 1100 against outbound delivery for which goods issue is done.
    Automatic batch determination is activated and the batch is determined by FEFO method.
    User2 is creating a sale order for the same material from plant 2000.Subsequently, delivery is created and batch is determined and also the batch determined is the same as that of the previous one.
    Now both are in the same screen. When the user2 is trying to do PGI the system is giving error message the batch of the material is locked by the user but the interesting this if it is vice-versa that is with the user2 in the delivery screen and the user1 is trying to take goods receipt in plant 1100, the system is allowing to take the goods receipt of the material.
    How can we resolved this issue, please suggest.
    I have gone through this SDN Thread also but not got the proper solution
    Batch Lock during parallel goods movement
    Grateful for Solution
    Sanjai Srivastav

    Insufficient information. Unresolved, closed.
    Edited by: Srivastav100 on Mar 11, 2011 11:19 AM
    Edited by: Srivastav100 on Mar 11, 2011 11:19 AM

  • Configuring web sessions

    I'm having trouble configuring web sessions. I've followed the documentation and seemingly there are no errors, but functionally it doesn't work and conceptually it doesn't seem right. I'd guess it is down to my configuration. Wonder if someone can have a look and advise. Also, what is the procedure for support, is this forum the first point of contact.?
    So I am using coherence in a server/client topology with a cluster formed of a number of servers and applications connecting via tcpextend as clients. For my other caches this seems fine, however the web sessions distributed cache configured as a near cache is showing up with the front and back cache in the application (client) jvm and no mention in the server. I would expect the front in the client and back in the server.
    Below are client and server configs
    client config:
    <?xml version="1.0"?>
    <!DOCTYPE cache-config SYSTEM "cache-config.dtd">
    <cache-config>
    <caching-scheme-mapping>
    <cache-mapping>
    <cache-name>org.hibernate.cache.*</cache-name>
    <scheme-name>hibernate-backed</scheme-name>
    <init-params>
    <init-param>
    <param-name>size-limit</param-name>
    <param-value>100</param-value>
    </init-param>
    </init-params>
    </cache-mapping>
    <cache-mapping>
    <cache-name>*</cache-name>
    <scheme-name>hibernate-backed</scheme-name>
    <init-params>
    <init-param>
    <param-name>size-limit</param-name>
    <param-value>1000</param-value>
    </init-param>
    </init-params>
    </cache-mapping>
    <cache-mapping>
    <cache-name>pof-db-backed-ActivityContentVO</cache-name>
    <scheme-name>databaseBackedCacheScheme</scheme-name>
    </cache-mapping>
    <cache-mapping>
    <cache-name>2-hour-pof-cache-*</cache-name>
    <scheme-name>pof2HourCacheScheme</scheme-name>
    </cache-mapping>
    <cache-mapping>
    <cache-name>pof-*</cache-name>
    <scheme-name>pofCacheScheme</scheme-name>
    </cache-mapping>
    <cache-mapping>
    <cache-name>session-*</cache-name>
    <scheme-name>SessionsScheme</scheme-name>
    </cache-mapping>
    <cache-mapping>
    <cache-name>local-session-*</cache-name>
    <scheme-name>SessionsScheme</scheme-name>
    </cache-mapping>
    </caching-scheme-mapping>
    <caching-schemes>
              <local-scheme>
         <scheme-name>localSessionsScheme</scheme-name>
         </local-scheme>
         <near-scheme>
         <scheme-name>SessionsScheme</scheme-name>
         <front-scheme>
         <local-scheme>
         <scheme-ref>localSessionsScheme</scheme-ref>
         </local-scheme>
         </front-scheme>
         <back-scheme>
         <remote-cache-scheme>
         <scheme-ref>RemoteSessionsScheme</scheme-ref>
         </remote-cache-scheme>
         </back-scheme>
         </near-scheme>
    <remote-cache-scheme>
    <scheme-name>hibernate-backed</scheme-name>
    <service-name>HibernateL2CacheService</service-name>
    <initiator-config>
    <tcp-initiator>
    <remote-addresses>
    <socket-address>
    <address>and-hsk-lpcoherdev1</address>
    <port>9094</port>
    </socket-address>
    <socket-address>
    <address>and-hsk-lpcoherdev2</address>
    <port>9094</port>
    </socket-address>
    </remote-addresses>
    </tcp-initiator>
    <outgoing-message-handler>
    <heartbeat-interval>2s</heartbeat-interval>
    <heartbeat-timeout>10s</heartbeat-timeout>
    <request-timeout>60s</request-timeout>
    </outgoing-message-handler>
    </initiator-config>
    </remote-cache-scheme>
    <remote-cache-scheme>
    <scheme-name>RemoteSessionsScheme</scheme-name>
    <service-name>DistributedSessionsCacheService</service-name>
    <initiator-config>
    <tcp-initiator>
    <remote-addresses>
    <socket-address>
    <address>and-hsk-lpcoherdev1</address>
    <port>9094</port>
    </socket-address>
    <socket-address>
    <address>and-hsk-lpcoherdev2</address>
    <port>9094</port>
    </socket-address>
    </remote-addresses>
    </tcp-initiator>
    <outgoing-message-handler>
    <heartbeat-interval>2s</heartbeat-interval>
    <heartbeat-timeout>10s</heartbeat-timeout>
    <request-timeout>60s</request-timeout>
    </outgoing-message-handler>
    </initiator-config>
    </remote-cache-scheme>
    <remote-cache-scheme>
    <scheme-name>databaseBackedCacheScheme</scheme-name>
    <service-name>DBBackedCacheService</service-name>
    <initiator-config>
    <tcp-initiator>
    <remote-addresses>
    <socket-address>
    <address>and-hsk-lpcoherdev1</address>
    <port>9095</port>
    </socket-address>
    <socket-address>
    <address>and-hsk-lpcoherdev2</address>
    <port>9095</port>
    </socket-address>
    </remote-addresses>
    </tcp-initiator>
    <outgoing-message-handler>
    <heartbeat-interval>2s</heartbeat-interval>
    <heartbeat-timeout>10s</heartbeat-timeout>
    <request-timeout>180s</request-timeout>
    </outgoing-message-handler>
    <serializer>
    <class-name>com.tangosol.io.pof.ConfigurablePofContext</class-name>
    <init-params>
    <init-param>
    <param-type>String</param-type>
    <param-value>localpeople-pof-config.xml</param-value>
    </init-param>
    </init-params>
    </serializer>
    </initiator-config>
    </remote-cache-scheme>
    <remote-cache-scheme>
    <scheme-name>pof2HourCacheScheme</scheme-name>
    <service-name>POF2HourCacheService</service-name>
    <initiator-config>
    <tcp-initiator>
    <remote-addresses>
    <socket-address>
    <address>and-hsk-lpcoherdev1</address>
    <port>9095</port>
    </socket-address>
    <socket-address>
    <address>and-hsk-lpcoherdev2</address>
    <port>9095</port>
    </socket-address>
    </remote-addresses>
    </tcp-initiator>
    <outgoing-message-handler>
    <heartbeat-interval>2s</heartbeat-interval>
    <heartbeat-timeout>10s</heartbeat-timeout>
    <request-timeout>180s</request-timeout>
    </outgoing-message-handler>
    <serializer>
    <class-name>com.tangosol.io.pof.ConfigurablePofContext</class-name>
    <init-params>
    <init-param>
    <param-type>String</param-type>
    <param-value>localpeople-pof-config.xml</param-value>
    </init-param>
    </init-params>
    </serializer>
    </initiator-config>
    </remote-cache-scheme>
    <remote-cache-scheme>
    <scheme-name>pofCacheScheme</scheme-name>
    <service-name>POFCacheService</service-name>
    <initiator-config>
    <tcp-initiator>
    <remote-addresses>
    <socket-address>
    <address>and-hsk-lpcoherdev1</address>
    <port>9095</port>
    </socket-address>
    <socket-address>
    <address>and-hsk-lpcoherdev2</address>
    <port>9095</port>
    </socket-address>
    </remote-addresses>
    </tcp-initiator>
    <outgoing-message-handler>
    <heartbeat-interval>2s</heartbeat-interval>
    <heartbeat-timeout>10s</heartbeat-timeout>
    <request-timeout>180s</request-timeout>
    </outgoing-message-handler>
    <serializer>
    <class-name>com.tangosol.io.pof.ConfigurablePofContext</class-name>
    <init-params>
    <init-param>
    <param-type>String</param-type>
    <param-value>localpeople-pof-config.xml</param-value>
    </init-param>
    </init-params>
    </serializer>
    </initiator-config>
    </remote-cache-scheme>
    </caching-schemes>
    </cache-config>
    Server config:
    <?xml version="1.0"?>
    <!DOCTYPE cache-config SYSTEM "/export/home/coherdev/coherencecp/cache-config.dtd" >
    <cache-config>
         <caching-scheme-mapping>
              <!--
                   The patterns get matched in the order of specificity (more specific
                   definition is selected whenever possible). For example, if both
                   "MyCache" and "My*" mappings are specified, the scheme from the
                   "MyCache" mapping will be used to configure a cache named "MyCache".
                   The default query cache for Hibernate name is
                   "org.hibernate.cache.StandardQueryCache" (unless a default region
                   prefix is provided, in which case "[prefix]." will be prepended to
                   the cache name). Use the cache configuration file to map this cache
                   name to a Local/Replicated topology, or explicitly provide an
                   appropriately-mapped region name when querying.
              -->
              <cache-mapping>
                   <cache-name>org.hibernate.cache.*</cache-name>
                   <scheme-name>hibernate-backed</scheme-name>
                   <init-params>
                        <init-param>
                             <param-name>size-limit</param-name>
                             <param-value>100</param-value>
                        </init-param>
                   </init-params>
              </cache-mapping>
              <cache-mapping>
                   <cache-name>*</cache-name>
                   <scheme-name>hibernate-backed</scheme-name>
                   <init-params>
                        <init-param>
                             <param-name>size-limit</param-name>
                             <param-value>1000</param-value>
                        </init-param>
                   </init-params>
              </cache-mapping>
              <cache-mapping>
                   <cache-name>pof-db-backed-ActivityContentVO</cache-name>
                   <scheme-name>databaseBackedCacheScheme</scheme-name>
                   <init-params>
                        <init-param>
                             <param-name>entityname</param-name>
                             <param-value>uk.co.and.hyperlocal.beans.ActivityContentVO</param-value>
                        </init-param>
                   </init-params>
              </cache-mapping>
    <cache-mapping>
    <cache-name>2-hour-pof-cache-*</cache-name>
    <scheme-name>pof2HourCacheScheme</scheme-name>
    </cache-mapping>
              <cache-mapping>
                   <cache-name>pof-*</cache-name>
                   <scheme-name>pofCacheScheme</scheme-name>
              </cache-mapping>
    <cache-mapping>
    <cache-name>session-*</cache-name>
    <scheme-name>SessionsScheme</scheme-name>
    </cache-mapping>
    <cache-mapping>
    <cache-name>local-session-*</cache-name>
    <scheme-name>SessionsScheme</scheme-name>
    </cache-mapping>           
         </caching-scheme-mapping>
         <caching-schemes>
              <!-- Distributed scheme for Hibernate L2 Caches - BEGIN -->
              <distributed-scheme>
                   <scheme-name>hibernate-backed</scheme-name>
                   <service-name>HibernateL2CacheService</service-name>
                   <backing-map-scheme>
                        <local-scheme>
                             <scheme-ref>hibernate-eviction</scheme-ref>
                        </local-scheme>
                   </backing-map-scheme>
                   <autostart>true</autostart>
              </distributed-scheme>
              <!-- Distributed scheme for Hibernate L2 Caches - END -->
              <!-- Distributed scheme for Database backed Caches - BEGIN -->
              <distributed-scheme>
                   <scheme-name>databaseBackedCacheScheme</scheme-name>
                   <service-name>DBBackedCacheService</service-name>
                   <serializer>
                        <class-name>com.tangosol.io.pof.ConfigurablePofContext</class-name>
                        <init-params>
                             <init-param>
                                  <param-type>String</param-type>
                                  <param-value system-property="tangosol.pof.config">localpeople-pof-config.xml</param-value>
                             </init-param>
                        </init-params>
                   </serializer>
                   <backing-map-scheme>
                        <read-write-backing-map-scheme>
                             <internal-cache-scheme>
                                  <local-scheme></local-scheme>
                             </internal-cache-scheme>
                             <cachestore-scheme>
                                  <class-scheme>
                                       <class-name>spring-bean:entityCacheStore</class-name>
                                       <init-params>
                                            <init-param>
                                                 <param-name>setEntityName</param-name>
                                                 <param-value>{entityname}</param-value>
                                            </init-param>
                                       </init-params>
                                  </class-scheme>
                             </cachestore-scheme>
                             <read-only>false</read-only>
                             <!--
                                  To make this a write-through cache just change the value below to
                                  0 (zero)
                             -->
                             <write-delay-seconds>5s</write-delay-seconds>
                        </read-write-backing-map-scheme>
                   </backing-map-scheme>
                   <autostart>true</autostart>
              </distributed-scheme>
              <!-- Distributed scheme for Database backed Caches - END -->
    <!-- Distributed scheme for all other POF enabled Caches - BEGIN -->
              <distributed-scheme>
                   <scheme-name>pofCacheScheme</scheme-name>
                   <service-name>POFCacheService</service-name>
                   <serializer>
                        <class-name>com.tangosol.io.pof.ConfigurablePofContext</class-name>
                        <init-params>
                             <init-param>
                                  <param-type>String</param-type>
                                  <param-value system-property="tangosol.pof.config">localpeople-pof-config.xml</param-value>
                             </init-param>
                        </init-params>
                   </serializer>
                   <backing-map-scheme>
                        <local-scheme>
                        <scheme-ref>default-eviction</scheme-ref>
                        </local-scheme>
                   </backing-map-scheme>
                   <autostart>true</autostart>
              </distributed-scheme>
    <!-- Distributed scheme for all other POF enabled Caches - END -->
    <!-- Distributed scheme for POF enabled 2 Hour TTL Caches - BEGIN -->
    <distributed-scheme>
    <scheme-name>pof2HourCacheScheme</scheme-name>
    <service-name>POF2HourCacheService</service-name>
    <serializer>
    <class-name>com.tangosol.io.pof.ConfigurablePofContext</class-name>
    <init-params>
    <init-param>
    <param-type>String</param-type>
    <param-value system-property="tangosol.pof.config">localpeople-pof-config.xml</param-value>
    </init-param>
    </init-params>
    </serializer>
    <backing-map-scheme>
    <local-scheme>
    <scheme-ref>2hour-eviction</scheme-ref>
    </local-scheme>
    </backing-map-scheme>
    <autostart>true</autostart>
    </distributed-scheme>
    <!-- Distributed scheme for POF enabled 2 Hour TTL Caches - END -->
    <!-- Distributed scheme for Web Sessions Caches - START -->
              <distributed-scheme>
                   <scheme-name>RemoteSessionsScheme</scheme-name>
                   <service-name>DistributedSessionsCacheService</service-name>
                   <backing-map-scheme>
                        <local-scheme>
                             <scheme-ref>default-eviction</scheme-ref>
                        </local-scheme>
                   </backing-map-scheme>
                   <autostart>true</autostart>
              </distributed-scheme>
    <!-- Distributed scheme for Web Sessions Caches - END -->
    <!-- Eviction policy for Hibernate L2 caches - BEGIN -->
              <local-scheme>
                   <scheme-name>hibernate-eviction</scheme-name>
                   <!--
                        Hybrid eviction policy chooses which entries to evict based the
                        combination (weighted score) of how often and recently they were
                        accessed, evicting those that are accessed least frequently and were
                        not accessed for the longest period first
                   -->
                   <eviction-policy>LRU</eviction-policy>
                   <!--
                        Used to limit the size of the cache. The maximum number of units
                        that can be placed in the cache ON THIS NODE before pruning occurs.
                   -->
                   <high-units>
                        10000
    </high-units>
                   <!--
                        The number of units that the cache will be pruned down to when
                        pruning takes place. This limit is FOR THIS NODE not the whole
                        cache.
                   -->
                   <low-units>
                        5000
    </low-units>
                   <!--
                        A Unit calculator that determines the binary size of cached objects.
                   -->
                   <unit-calculator>FIXED</unit-calculator>
                   <!--
                        Specifies the amount of time from last update that entries will be
                        kept by the cache before being marked as expired. 0, the default,
                        means that data is never evicted.
                   -->
                   <expiry-delay>0</expiry-delay>
                   <!--
                        Specifies the time interval between periodic cache flushes, which
                        will discard expired entries from the cache, thus freeing resources.
                   -->
                   <flush-delay>30s</flush-delay>
              </local-scheme>
    <!-- Eviction policy for Hibernate L2 caches - END -->
    <!-- Eviction policy for all POF enabled 2 Hour TTL caches - BEGIN -->
    <local-scheme>
    <scheme-name>2hour-eviction</scheme-name>
    <!--
    Hybrid eviction policy chooses which entries to evict based the
    combination (weighted score) of how often and recently they were
    accessed, evicting those that are accessed least frequently and were
    not accessed for the longest period first
    -->
    <eviction-policy>LRU</eviction-policy>
    <!--
    Used to limit the size of the cache. The maximum number of units
    that can be placed in the cache ON THIS NODE before pruning occurs.
    -->
    <high-units>
    50
    </high-units>
    <!--
    A Unit calculator that determines the binary size of cached objects.
    -->
    <unit-calculator>FIXED</unit-calculator>
    <!--
    Specifies the amount of time from last update that entries will be
    kept by the cache before being marked as expired. 0, the default,
    means that data is never evicted.
    -->
    <expiry-delay>60s</expiry-delay>
    <!--
    Specifies the time interval between periodic cache flushes, which
    will discard expired entries from the cache, thus freeing resources.
    -->
    <flush-delay>30s</flush-delay>
    </local-scheme>
    <!-- Eviction policy for all POF enabled 2 Hour TTL caches - END -->
    <!-- Eviction policy for all POF enabled caches - BEGIN -->
    <local-scheme>
    <scheme-name>default-eviction</scheme-name>
    <!--
    Hybrid eviction policy chooses which entries to evict based the
    combination (weighted score) of how often and recently they were
    accessed, evicting those that are accessed least frequently and were
    not accessed for the longest period first
    -->
    <eviction-policy>LRU</eviction-policy>
    <!--
    Used to limit the size of the cache. The maximum number of units
    that can be placed in the cache ON THIS NODE before pruning occurs.
    -->
    <high-units>
    500
    </high-units>
    <!--
    A Unit calculator that determines the binary size of cached objects.
    -->
    <unit-calculator>FIXED</unit-calculator>
    <!--
    Specifies the amount of time from last update that entries will be
    kept by the cache before being marked as expired. 0, the default,
    means that data is never evicted.
    -->
    <expiry-delay>0</expiry-delay>
    <!--
    Specifies the time interval between periodic cache flushes, which
    will discard expired entries from the cache, thus freeing resources.
    -->
    <flush-delay>30s</flush-delay>
    </local-scheme>
    <!-- Eviction policy for all POF enabled caches - END -->
              <proxy-scheme>
                   <scheme-name>extend-proxy</scheme-name>
                   <service-name>ExtendTcpProxyService</service-name>
                   <thread-count>5</thread-count>
                   <acceptor-config>
                        <tcp-acceptor>
                             <local-address>
                                  <address>localhost</address>
                                  <port system-property="tangosol.coherence.extend.port">9096</port>
                             </local-address>
                        </tcp-acceptor>
                   </acceptor-config>
                   <proxy-config>
                        <cache-service-proxy>
                             <lock-enabled>true</lock-enabled>
                        </cache-service-proxy>
                   </proxy-config>
                   <autostart>true</autostart>
              </proxy-scheme>
              <proxy-scheme>
                   <scheme-name>extend-pof-proxy</scheme-name>
                   <service-name>ExtendTcpPOFProxyService</service-name>
                   <thread-count>5</thread-count>
                   <acceptor-config>
                        <tcp-acceptor>
                             <local-address>
                                  <address>localhost</address>
                                  <port system-property="tangosol.coherence.extend.pof.port">9097</port>
                             </local-address>
                        </tcp-acceptor>
                        <serializer>
                             <class-name>com.tangosol.io.pof.ConfigurablePofContext</class-name>
                             <init-params>
                                  <init-param>
                                       <param-type>String</param-type>
                                       <param-value system-property="tangosol.pof.config">localpeople-pof-config.xml</param-value>
                                  </init-param>
                             </init-params>
                        </serializer>
                   </acceptor-config>
                   <proxy-config>
                        <cache-service-proxy>
                             <lock-enabled>true</lock-enabled>
                        </cache-service-proxy>
                   </proxy-config>
                   <autostart>true</autostart>
              </proxy-scheme>
         </caching-schemes>
    </cache-config>
    Edited by: user4537453 on 15-Mar-2010 08:10

    After you specified the scheme name to use in the cache mapping, you need to define the scheme. This is what I would do on the server:
    <cache-name>session-*</cache-name>
    <scheme-name>DistributedSessionsScheme</scheme-name>
    </cache-mapping>
    <cache-mapping>
    <cache-name>local-session-*</cache-name>
    <scheme-name>DistributedSessionsScheme</scheme-name>
    </cache-mapping>
    <!-- Distributed scheme for Web Sessions Caches - START -->
    <distributed-scheme>
    <scheme-name>DistributedSessionsScheme</scheme-name>
    <service-name>DistributedSessionsCacheService</service-name>
    <backing-map-scheme>
    <local-scheme>
    <scheme-ref>default-eviction</scheme-ref>
    </local-scheme>
    </backing-map-scheme>
    <autostart>true</autostart>
    </distributed-scheme>
    <!-- Distributed scheme for Web Sessions Caches - END -->
    -Luk

  • How do you prevent your phone from locking during voice calls?  Mute/unmute features?  Are there any?  Please help?

    Here is the problem - I am often on conference calls.  My company, for security reasons requires that I use the lock phone feature.  However, I will be on a call, I have muted myself, then the phone locks.  I then have to key in my password, and unmute my phone.  This prevents me from "jumping in" the conversation appropriately.  I either sound like I'm not paying attention or worse, I'm talking over someone else and seem rude.  I have tried to search for any of the following features on the iphone 5 c.
    Prevent phone from locking during phone calls
    Set a button on the phone as mute/unmute
    Find a headset that has a mute/unmute feature
    I am not the only one at my company struggling with this so I'm thinking others might be too and that there is a solution!
    Please help!
    Thank you.

    Sounds like you need to upgrade to the iPhone 5s
    The 5s has Touch ID
    You can unlock your phone with your finger instead of typing in a key code
    No swiping to unlock either, just touch the home button
    You can enrol multiple fingers as well
    Here is a video of it in action
    http://www.apple.com/iphone-5s/videos/#video-touch
    Or wait and see what iPhone 6 has to offer
    That being said, as desiel vdub posted if the phone is up to your face, the proximity sensor should turn the screen off
    And when you lower the phone turn it back on again
    Not sure about the phone locking when your on a call doesn't sound right

Maybe you are looking for

  • Output to an HDMI TV

    Hello everyone, I am wanting to connect my MacBook (Intel Core2 Duo 2Ghz) to my TV, a Pioneer PDP-434HDE (the actual box that all TV inputs are connected is the Pioneer PDP-R04E). I have an Apple mini-DVI to DVI adapter, connected to a DVI-HDMI cable

  • 2nd gen ipod shuffle will charge with one computer (vista) but not the other computer (windows 8).  Please help!

    My 2nd gen ipod shuffle will charge on my old vitsta computer but not my new windows 8 computer. Does anyone know why that might be? The new computer recognizes the ipod and I can see everything on it, change settings, etc. it just won't charge. Is t

  • Error starting the last available version of PC su...

    After installing when running pc suite I get this error The application failed to initialize properly (0x0150002). Click OK to terminate the aplication. I have never had this erro before. I have W xp sp2

  • One Server, Two Virtual Hosts, Two Applications, Two Mix,...

    In the same server I have two virtual hosts (site1.com, site2.com). For each virtual host I have a PUBLIC page (40, 50). The following accesses work perfectly: (1) http://www.site1.com/portal/page?_pageid=40,1&_dad=portal&_schema=PORTAL (2) http://ww

  • Problem wihle downloading images

    This browser is really faster and better. I have a problem when I want to download images: only desktop as location works. Save as... and any other location, nothing happens. Pentium4 DualCore 3.0   Windows XP Pro