Very strange, Entry Processor block the entire coherence node

I have a client node(storage= false) client1 which continues do get from cache1, the code is below:
for(int i=0;i<10000000;i++){
            System.out.println("get:"+ cache1.get(i));
and have another client node(storage= false) client2 which invoke a Entry Processor. this Entry Processor is work on cache2(not cache1)
cache2.invoke(keys,new MyEntryProcessor());
the MyEntryProcessor code is as below:
public Object process(Entry entry) {
        for(int i=0;i< 1000000;i++){
            entry.getKey();
            entry.getValue();
            System.out.println(i);
        return null;
when client2 begin run,  client1 will be blocked, until client2's Entry Processor is finished.
who can tell me why. it's very strange, because client1 and client2 are work on two different cache. and it's only do get

If these two caches belong to same cache service, then their requests are handled by the same service thread.   Coherence only use single service thread per service per node.    So if the get() for cache1 and the entry processor for cache2 go to the same node, you will see that behavior if cache1 and cache2 belong to same cache service.
Either turn on thread pool (if you want to use same cache service( or use different cache service.

Similar Messages

  • Is there a way for me to block a page within a website without blocking the entire site?

    I want to block some kids from my son's Facebook profile, if I block them using FB he will just unblock them. I've tried altering the hosts file but it doesn't work unless I block FB entirely. Is there a way to block pages from a site without blocking the entire site?

    Not sure but try this:
    -> Go to your son's page on Facebook
    * Right-click empty space within the page and click '''View Page Info'''
    * In the '''Page Info''' window, select the '''Permissions''' panel and change the setting to '''Block''' for all options
    * Close the Page Info window -> Restart Firefox
    Check and tell if its working.

  • Very strange issue when displaying the Account PDF Factsheet.

    We have a very odd situation.
    We have one users (user1) who has the same business role as everyone else in the office. They can enter the UI (CRM 7), display an account and then click on the PDF Factsheet option. It seems to process and then simple says 'Done', but there's no PDF document displayed. At first I thought it was an Adobe issue, but, if someone in the office (user2) logs into SAP on user1's  PC (in the same Windows session), they can perform the same process in the UI and the PDF is displayed, so it can't be a PC related issue, and must somehow be related to user1's SAP profile or role in some way.
    Comparing User1 and User2's roles displays no differences, and their SU01 entries are also the same.
    Can anyone come up any recommendations as to what it could be?.
    I've more or less exhausted all my options.
    Jason

    I think we have discoverd what is causing the problem.
    In CRM 7, when you view an Account (BP) the first assignment block to be show is the account details block. If you have this block collapsed (not expanded) or not on the screen at all then PDF fact sheet does not work. If I then expand the Account details block and review the PDF Fact Sheet, it then displays perfectly.
    I guess there must be some dependancy of the PDF Fact sheet on the Account details block. I placed a breakpoint (normal and external) in the method of the class CL_UIU_PRN_ACCOUNT, but this code never gets called when the Account details block is collapsed. I'll have to find out what code is executed before this class/method is called.
    Jason

  • Please help with very strange problem,Am I the only one......

    I am running Photoshop CS5 on a Q6600, 6 gigs of ram 3 Tbytes HD space and a 8600GT 512 video card. CS5 runs great until I add a configurator 2 panel, then strange things happen. When I select a tool using a keyboard shortcut, is changes very slowly and then reverts back to the original tool. Switching between layers in the layers panel is very slow. None of this happens untill I open a custom CF2 panel. I used custom configurator panels in CS4 with no problems and my workflow now almost depends on them.
    I have tried everything I can think of, I turned off open GL, changed all the advanced options in open GL, removed all plugins etc.
    Any suggestions would be greatly appreciated.
    Tom

    You are not alone.  There are other post where those with custom configurator panels are having delay problems.  No fix that I have seen yet.
    Hope you have not uninstalled CS4.

  • IMDB is listed as an add-on, but when I click on it to install it, I get an error message saying "this add on is not supported by Firefox". I find this very strange, since I have the add-on installed on my desktop--it just won't install to my laptop.

    Compaq laptop with Windows 7 installed. My desktop PC uses Windows Vista SP2. I have the IMDB search engine add-on installed on my desktop, and it works perfectly. When I attempt to install the add-on to my laptop, I get an error stating that "this add-on isn't supported by Firefox and can't be installed". I'm interested in the second one on the page, IMDB by clouserw.

    See if anything in this MozillaZine support thread helps you: <br />
    http://forums.mozillazine.org/viewtopic.php?f=38&t=2014247

  • Something very strange is happening with the adjustment brush

    When I brush over an area of a photo with the adjustment brush, LR does not select all of the area I brushed over, regardless how many times I go over it.  The unselected spots look like pepper sprinkled on mashed potatoes, small dots that will not select, and so will not do whatever effect I'm trying to do. Like if I brush a hillside, the little dots will appear (apparently randomly) If I change the color temp the selected area changes like it should but the little specks do not change.  LR will not select them.  Please help.

    Sorry, not the right answer. But thankx for taking a shot. According to
    Adobe LR does not have enough pixels when I'm working on a macro subject
    (say a butterfly that I'm trying to work on at 2x in the navigator) there
    just are not enough pixels. So I have to transfer projects that deal with
    micro subject into PS, PS had  no problem detecting the holed and filling
    them in, what I've got to do is select using the magic pen or whatever
    works best and then make adjustments to the selection. We do that, no
    problem.  Then back to LR for larger more general adjustments. I have no
    idea why, WHY Adobe would have two programs that work so closely together
    and yet not have identical selection abilities. That's a mistake in my book.
    On Sun, Oct 12, 2014 at 11:13 PM, Bob Somrak <[email protected]>

  • Want to know bow to block part of a website, not the entire website.

    I am aware how to block entire websites through the host file or through extensions, but I've looked all over google and can't find a way to just block one specific url. I don't want to block the entire site, I just want to block one page on that site. If anyone out there has figured out a way to just block a specific url within a website and not the entire website, I'd be happy to hear from you :)
    == This happened ==
    Every time Firefox opened
    == forever

    Maybe one of these work:
    * LeechBlock: https://addons.mozilla.org/firefox/addon/4476
    * BlockSite: https://addons.mozilla.org/firefox/addon/3145

  • Address Book behaves very strange

    Hello members and outside viewers,
    First thing: My Address Book behaves very strange.
    - After startup, the window freezes. Only if I minimize and click again, works OK. I began used to it, BUT
    - Since yesterday, Addresses gone, disappeared from every entry.
    - Under Preferences » Address Format is uneditable, it has "Item3" in it, unclickable drop down menu.
    - Under Preferences »Template » Add Field several options are grey: "Phone", "Email", "Related Names", "Instant Messaging", "Address".
    Please can you help me! I deleted both plist files from Preferences folder and deleted the whole folder under Application Support/AddressBook, also reinstalled Address Book from Leopard DVD, but nothing helped so far.
    Second thing: when I invoke Spotlight, and start typing after 2-3 seconds, it quits and also Dock unusable, restarts automatically. Spotlight is useless, it behaves every time like this. Spotlight in Finder windows are OK, system-wide menubar has this error. Also, it was suddenly gone wrong like Address Book. Can I think of some virus?
    P.S. (off topic), might helpful to share: very frustating, that registering to Discussions took me over an hour.
    - With Safari 4.03 the "Name" and "AppleID" are blank fields on "Create New User Account", therefore impossible to proceed. ( Error: invalid AppleID. Please login with a different AppleID )
    - With Firefox you can actually see them, but "?" instead of accounted letters.
    - After changing My Info, I finally realised that Apple ID should be complete e-mail address.
    - That means my "visionfresh" account is totally different from "[email protected]" (or me.com, whatever..)
    - Not to mention that I created a new Apple ID, that was also not working.
    - Bottom line: my "[email protected]" account is working also in Safari after editing my Name (replace accented characters), but I could not proceed with the nickname "visionfresh", I chose "matyashuszar".

    {quote:title=Console.App shows this when starting Address Book}
    2009.09.03. 18:45:48 Mail[228] SyncServices[ISyncSessionDriver]: Caught top level exception: I/O error for database at /Users/matyashuszar/Library/Mail/AvailableFeeds. SQLite error code:1, 'SQL logic error or missing database' Stack trace: (0x91ffcfeb 0x966c4e3b 0x92071f1a 0x920713f8 0x9206d18b 0x920a2e40 0x92097c2d 0x920977da 0x92077001 0x38767c 0x38758d 0x38751a 0x92061302 0x920a7260 0x920a6ad4 0x920a67ff 0x920633c8 0x92062f99 0x92061ea0 0x387303 0x38748e 0x1627da55 0x94ddd1e8 0x94dc923d 0x94e632cb 0x904d1dfd 0x904d19a4 0x95d56155 0x95d56012)
    2009.09.03. 18:51:27 Address Book[6144] -[ABAddressBook setDefaultCountryCode:] called with unknown country code 'us'
    2009.09.03. 18:51:27 Address Book[6144] NSScanner: nil string argument
    2009.09.03. 18:51:27 Address Book[6144] * -[NSCFArray insertObject:atIndex:]: attempt to insert nil
    {quote}
    Please help what to to do!

  • How to blocks the main thread

    Hello,
    I have a multi-threaded application but the main thread doesnt blocks the application so the application quits just after started. Im using this code to block the main thread:
    /*BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
    for(;;) {
    try {
    r.readLine();
    catch (IOException e) {
    I tryed to just use for(;;){} but it causes 100% of CPU using. This code above its very dangerous because sometimes System.in blocks the entire application (all threads)
    Thanks a lot

    This application its a socket server, Im doing:
    main {
    Thread1 - createServer();
    Thread2 - createLogging();
    waitForServerShutDown();
    the createServer method must be placed in a thread, its must not blocks the application because createLogging(); must be executed just after the server was created and createLogging(); doesnt blocks the application then... I must block the main{} to keeps application running

  • Can not access cache in entry processor

    Why the cache where the entry object exists can not be accessed in entry processor?
    The calculation in entry processor will not always be one grid object operation.
    One object would be related to other objects.
    If we could not do such thing in entry processor, we have to process calculation outside of the entry processor. However, caculation out of grid would not be a very efficient way for generating result.
    Does anyone have good idea on this?

    Hi, Robert,
    I understood your meaning.
    Invocable is an alternative solution for processing data. Use it outside of entry-processor, no dead lock would happen.
    I paste piece of my code here. Following codes can not work properly. Just like you said, can not wait for result inside of entry-processor. My original purpose is that get "Nation" property from another data object. Now, I only can do it outside of entry-processor.
    public class UpdateFxProcessor extends AbstractProcessor {
         public Object process(Entry entry) {
              HtWsMeasuresUsdFx hfx = (HtWsMeasuresUsdFx)entry.getValue();
         InvocationService service = (InvocationService)
    CacheFactory.getConfigurableCacheFactory()
    .ensureService("InvocationService");
         Map map = service.query(new NationInvocable(hfx.getWsNationCode()), null);
         String nation= (String)map.get(service.getCluster().getLocalMember());
              hfx.setNation(nation);     
    // ... other logics for calculating hfx....
              return null;
    My data grid environment will store more than 10 million HtWsMeasuresUsdFx objects. I hope that calculation on these objects could be executed in parallel. Maybe I misunderstood the function of entry-processor. If we use Invocable outside of entry-processor, it is hard to control its calculation in parallel, isn't it?
    Best regards,
    Copper

  • Spawning new entry processors from within an existing entry processor

    Is it possible / legal to spawn a new entry processor (to operate within a different cache) from within an existing entry processor.
    E.g we have a parent and a child cache, We will receive an update of the parent and start an entry processor to do this. Off the back of the parent update we will also need to update some child entries in another cache and need to start a new entry processor for the child entries. Is it legal to do this?

    Hi Ghanshyam,
    yes, in case of (a), you would be mixing different types in the same cache. There is nothing wrong with that from Coherence's point of view, as long as all code which is supposed to access such objects in their deserialized form is able to handle this situation.
    This means that you need to use special extractors for creating indexes, and you need to write your filters, entry processors and aggregators appropriately to take this into account. But that's all it means.
    The EntryProcessor on the child could be invoked, so long as there are more service
    threads configured. This allows retaining partition affinity. I don't think this is technically
    illegal.It is problematic, as invoking an entry-processor from another entry-processor in the same cache service can lead to deadlock/livelock situations. You won't find it out in a simple test as you get an exception or not.
    But even if it is technically not guarded against, firing a second entry-processor consumes an additional thread from the thread-pool. Now if you get to a situation when all (or at least more than half of the thread-pool size) of your entry-processors try to fire an additional entry-processor, and there are no more threads in the thread-pool, then some or all would be waiting for a thread to be available, and of course none would be available, because there are not enough single-thread entry-processors to leave to get a thread to everyone.
    However, none of them can back off as all are waiting for the fired entry-processor to complete. Poof, no processing is possible on your cache service.
    Another problematic situation which can arise if entry processors are fired from entry processors is that your entry-processors may deadlock on entries (entry processors executing on some entries and trying to execute on another entry on which another entry processor executes and also tries to execute on the first entry). In this case the entry-processors would wait on each other to execute.
    No code running in the cache server invoked by Coherence is supposed to access a cache service from code running in the threads of the same cache service, except for a couple of specifically named operations which only release resources but not consume additional new ones.
    Best regards,
    Robert

  • How to block the material qty to 1 while creating sales order (VA01)?

    Hi All,
    Scenario :  We have 20 Materials each with 100 qty in Plant. In the sales order we should have all the 20 materials with qty one. The sales order should throw an error if the material qty is more than 1 and should not allow to create a sales order.
    so is there any transaction code where we can block the entire material qty to 1 from the same plant while creating sales order?
    Note: We should not set in MM01 "Minimum order qty". Assume we have 100 material in plant we can't set for each material one by one "minimum order qty".Instead of that is there any option to set the whole material qty to 1 as minimum while creating sales order?
    Kindly guide me how to proceed.
    Thanks,
    Renjith

    If you have access to idoc before calling the processing Function module, Adding header text segments E1EDKT1 and E1EDKT2 to the idoc will create the header text.
    Regards
    Sridhar

  • Hye guys i've a problems with my iPhone : since few days i can't open my application 'apple store ' .. It's very strange ! So have you solutions ?

    Hye guys
    I've problems with my iPhone , since few days i can't open my application Apple store  .. It's very strange because it's the first time ! And everything is okay in my phone .. If you have solutions tell me !

    Hello again,
    I just realized that it was the Address book I was looking for, and it's there. I'm sorry --and embarrased- for the confusion!
    I can't delete the discussion, so please considered resolved!
    Thanks!

  • Strange Entries in 'Pattern Analysis' results

    I'm using the Pattern Discovery feature of Data Profiling and I'm getting strange characters in the results for Dominant Character Pattern and Dominant Word Pattern. For instance, two of the patterns returned are ^(9+)$ and ^(Aa((4))$ And the data that supposedly conforms to these patterns are simple integers or words.
    Does any one know what could be going on here? Some kind of corruption in the result set? Or am I missing how to interpret these strange entries? Thanks.

    The patterns discovered are regular expressions. Are you looking for common format discovery? If you want to know something is a number or a date or en email address look at the common format discovery (under the hood a common format may be a number of reg expression also). You will have to select 'Enable Common Format Discovery' and reprofile. The common format is another column in this pattern discover table.
    Cheers
    David

  • Strange read-through operation after entry processor work

    Hi.
    We use the combination cache listener - entry processor to do some actions when the data comes to coherence. We use Oracle Coherence Version 3.5.3/465.
    Just after the entry processor has set the new value for the entry, the new "get" operation is called for the cache and jdbc hit is done for this key.
    Here is the entry processor:
    public Object process(Entry entry) {       
            if (!entry.isPresent()) {
                // No entities exist for this CoreMatchingString - creating new Matching unit
                MatchingUnit newUnit = new MatchingUnit(newTrade);
                entry.setValue(newUnit, true);
                return null;
            ((MatchingUnit)entry.getValue()).processMatching(newTrade);
            return null;
        }Very interesting, that if I use entry.setValue(value) without second parameter - I recieve the db hit just on setValue method. According to docs, setValue() with one parameter returns the previous value and its logical, that the cache hit (and therefore the db hit) is done just on set. But I use the overloaded version void setValue(java.lang.Object oValue, boolean fSynthetic), which is said to be light and should not fetch previous version of the object. But this is done anyway! Not on setValue itself, but just after the process() method called.
    Actually it's strange, that coherence tries to fetch the previous value in the case it didn't exist! The cache.invoke(matchingStr, new CCPEntryProcessor(ccp)) is invoked on not existing record and it is created just on invokation. May be it's the bug or the place for optimization.
    Thanks

    bitec wrote:
    Thanks, Robert, for such detailed answer.
    Still not clear for me, why synthetic inserts are debatable. There are lots of cases, when the client simply updates/inserts the record (using setValue()) and does not need to recieve the previous value. If he needs, he will launch the method:Hi Anton,
    it is debatable because the purpose of the fSynthetic flag is NOT so that you can optimize a cache store operation away. Synthetic event means that this is not real change in the data set triggered by the user, it is something Coherence has done on the backing map / on the cache for its own reasons and decisions to be able to provide high-availability to the data, and it only changes that particular Coherence node's subset of data but does not have a meaning related to the actually existing full data set. Such reasons are partition movement and cache eviction (or possibly any other reasons why Coherence would want to change the content of the backing map without telling the user that anything has changed).
    If you set the synthetic flag, you are trying to masquerade a real data change as an event which Coherence decided to trigger. This is why it is debatable. Also, synthetic backing map events may not always lead to dispatching cache events (for partition rebalance they definitely not). This optimization may also be extended to synthetic cache events.
    java.lang.Object setValue(java.lang.Object oValue)and recieve the previous value. If he doesn't, he calls:
    void setValue(java.lang.Object oValue, boolean fSynthetic)and DOESN'T recieve the previous value as method is marked void. Thus he cannot get the previous value anyhow using this API, except of the direct manual db call. Yep, because Coherence is not interested in the old value in case of a synthetic event. The synthetic methods exist so that some entry can be changed in Coherence (usually by Coherence itself) in a way that it indicates a synthetic event so that listeners are not notified.
    Some valid uses for such functionality for setValue invoked by user code could be compacting some cached value and replacing the value the backing map stores with the compacted representation, which does not mean a change in the meaning of the actual cached value, only the representation changes. Of course if the setValue(2) method does not actually honor the synthetic flag, then such functionality will still incur all the costs of a normal setValue(1) call.
    But the previous value is anyway fetched by Coherence itself just after process() and client anyway doesn't get it! But any listeners on the cache may need to get it due to cache semantics reasons.
    In this case I regard this as the bug, cause the client, which uses this API doesn't expect the cache hit to take place (no return value for this overloaded setValue() method), but it takes and leads to some extra problems, resulting from read-through mechanizm.
    I would not regard it as a bug, it is probably the case of documenting a possible optimization too early, when it ultimately did not get implemented. I definitely would not try to abuse it to set a value without triggering a db fetch, as again, the intention of the synthetic flag is related not only to the cache loader functionality, but also to events and marking that a change indicates a real data change or a Coherence data management action.
    Now I understand why coherence does not know, whether this is inserted or updated value, thanks for details.
    Anton.
    *Edited: I thought about this problem from the point of the oracle user, but may be this additional hit is necessary for event producers, which need to make the events, containing old/new values. In this case this seems to be the correct behaviour.... Seems that I need some other workaround to avoid db hit. The best workaround is the empty load() method for cachestore...You can try to find a workaround, but it is an ugly can of worms, because of the scenario when more than one thread tries to load the same entry, and some of them try to load it with a reason.
    You may try to put some data into thread-local to indicate that you don't really want to load that particular key. The problem is that depending on configuration and race conditions your cache loader may not be called to clean up that thread-local as some other thread may just be invoked right now and in that case its return value is going to be returned to all other threads, too, so you may end up with a polluted thread.
    Best regards,
    Robert
    Edited by: robvarga on Oct 15, 2010 4:25 PM

Maybe you are looking for

  • Photo sync problem with Windows Vista?

    I did some searching and was wondering if there is a solution to the photo sync problem with Windows Vista. I have gone the route of changing some of my photos to bitmap files but this is was way too much work just to view on ipod. I like to email Ap

  • Dynamic Action on IT0002 for France-Molga 06

    Hello, I would like to set up a dynamic action on IT0002 for France (Molga 06) - field State - 'GBDEP'. The field 'GBDEP' is a mandatory field for France, but the business is not maintaining the record of the Birth State of an employees. So I would l

  • How to make expandable field in pdf forms?

    Does anyone here know how to make expandable field in a PDF form? I want the field, originally appear to be a 1-liner, to expands when you put in more text and everything that is underneath the expandable field shifts or moves down. pls help. Thanks!

  • Using rewritable CDs in a Mac

    Hi there, We have bought a pack of Verbatim 4 x CD-RW rewritable CDs to use in out iMac. Unfortunatelky when pwe puyt a CD in the computer doesn't recognise the CD. Anyone know why and are there only certain formats of CD that work in an iMac?

  • How can I watch my itunes movies thru my WII?

    I have windows Vista and would like to know how I can watch movies or tv shows that I have purchased on Itunes on a WII.