Bug - multiple related instances of same class

We've discovered a rather subtle bug in the process by which Kodo
searches for reachable related objects to persist. If an instance of a
PC class (A) has two relationships to the same PC class (B), and both
related instances of B have the same value for their PK-field, then only
one of the related instances of B will be persisted.
Obviously, this problem only occurs in the context of application
identity. We've only encountered it when all the instances involved are
newly created and being made persistent for the first time (else the
instances would have different PK-values). It should also be noted that
we're assigning PK-values in jdoPreStore(). Here's the specific
situation we encountered:
Class A has two relationships to class B, represented by fields "B b1"
and "B b2". In our case, A.b1 is the many-side of a bidirectional
one-to-many relationship; the one-side is implemented by a field "List
aList" in B. A.b2 is the navigable side of a unidirectional
relationship; there is no corresponding field in B. (We haven't checked
whether or how the cardinality or navigability of the relationships
affects the problem.)
Let "a1" be the sole instance of A. If a1.b1 is set to an instance of B
but a1.b2 is null, and makePersistent( a1 ) is called, then a1 and b1
are persisted correctly and the relation field b2_id in TableA is NULL.
However, if a1.b2 is set to a second instance of B and both instances of
B have the same initial value of their PK-field, then a.b2 is not
persisted. Only one record is added to TableB; it corresponds to A.b1.
Interestingly, in this case the relation field b2_id in TableA is not
NULL, but has the default value of b2's PK-field. jdoPreStore() is not
called on b2 and b2 is not persisted, but its PK-field is read in the
process of persisting a1.
Since we've placed the jdoPreStore() callback in a common non-persistent
adapter superclass, we're currently able to work around the problem with
a static "seed" PK value that is incremented in the superclass default
constructor to provide a unique initial value for each PK-field. If
anyone would like the code for this approach we'll post it, although
it'll become unnecessary when the problem is fixed.
Jerry Pulley
Sr. Developer
Commerce Technologies, Inc.

I'm curious what behavior, besides throwing an exception, could even be
possible. If the pm discovers two object with the same id, it seems that it
has to choose one of them to make persistent. How could it possibly resolve
differences in the fields of the two instances in deciding which one is the
correct one to put in the db? Additionally, allowing this behavior could
lead to subtle, difficult to detect bugs in your program, since ( as Abe
points out ) JDO promises that there will only be one instance of an object
with a given primary key per PM. Other code may make decisions based on
this expectation ( like refreshing one of the objects after making a change
in a different PM ), that would lead to problems for code still hanging on
to the second instance.
IMHO, it should throw an exception.
-Eric
"Abe White" <[email protected]> wrote in message
news:[email protected]...
Thanks for the bug report! However, I'm not entirely sure that this is a
bug (at least not the bug you think it is); either way it's an extremely
interesting case. The reason I say it might not be a bug is thatassigning
pk values in jdoPreStore seems suspect.
We know that a single PM cannot at any time contain multiple instances
with the same oid value, app id or otherwise. This is obvious from the
getObjectById method -- only one object can have a particular oid.
We also know that jdoPreStore is called only for instances managed by a
PM (duh!).
Thus it should not be possible to see a case where jdoPreStore is
called for 2 objects with the same initial oid.
Now, I realize that when you're dealing with persistence-by-reachability
things become less clear. However, I think the general point stands: at
the time that the objects are made persistent they all must have unique
oid values, and objects must be made persistent before jdoPreStore is
called.
Technically we could get around this. The current
persistence-by-reachability algorithm is something like:
flushed = {}
while flushed.size < persistent.size:
for each persistent instance:
if instance not in flushed:
instance.jdoPreStore // may persist more instances
instance.persistFirstClassFields // may persist more too
flushed += instance
In sum this is a breadth-first method of persisting relations. It could
be changed to a depth-first system instead of persisting all first class
fields each one is persisted and then immediately the algorithm is
repeated for that object before the other fields are touched. However,
this seems like it might lead to other unexpected behavior.
Generally, it just seems like waiting till jdoPreStore to assign the oid
of an object seems like a bad idea. I think the real bug is that Kodo is
not throwing an exception as soon as 2 object with the same oid are
detected (currently it just lets one overwrite the other in the cache,
which results in the behavior you see).
Does anyone else have an opinion on this? I'm certainly not fixed on my
interpretation of things; if you disagree I'd be very interested in
hearing other arguments.

Similar Messages

  • Multiple windows of the same class with a different argument

    Suppose I have a main window with a list of users. If I click on any one user, the "chat window" should open with the argument as that "user".
    If i click on another, a similar "chat window" should open but with a different user.
    I can't have so many stages because I don't know how many users are there.
    How do I open multiple windows of the same class but with a different argument?

    Here is a sample (opens, at random locations, a bunch of child windows parameterized by color).
    Could be simpler, but hopefully you get the gist.
    import java.util.Random;
    import javafx.application.Application;
    import javafx.geometry.Rectangle2D;
    import javafx.scene.Scene;
    import javafx.scene.control.Label;
    import javafx.scene.layout.StackPane;
    import javafx.stage.*;
    public class ColoredStages extends Application {
      final String[] colors = { "firebrick", "palegreen", "azure", "chocolate", "goldenrod" };
      final Random random = new Random(42);
      Rectangle2D screenBounds;
      public static void main(String[] args) { launch(args); }
      @Override public void start(Stage stage) {
        screenBounds = Screen.getPrimary().getVisualBounds();
        stage.setTitle("Primary");
        stage.setScene(new ColoredScene("cornsilk"));
        stage.show();
        for (String color : colors) {
          Stage coloredStage = new ColoredStage(stage, color);
          coloredStage.show();
      class ColoredStage extends Stage {
        ColoredStage(Stage owner, String color) {
          super();
          initOwner(owner);
          initStyle(StageStyle.UTILITY);
          setX(screenBounds.getMinX() + random.nextInt((int) screenBounds.getWidth()));
          setY(screenBounds.getMinY() + random.nextInt((int) screenBounds.getHeight()));
          setScene(new ColoredScene(color));
      class ColoredScene extends Scene {
        ColoredScene(String color) {
          super(new StackPane());
          StackPane layout = (StackPane) getRoot();
          layout.getChildren().addAll(new Label(color));
          layout.setStyle("-fx-font-size: 20px; -fx-padding: 30px; -fx-background-color: " + color);
    }

  • Create multiple instances of same class but with unique names

    Hi,
    I'm creating an IM application in Java.
    So far I can click on a user and create a chat session, using my chatWindow class. But this means I can only create one chatWindow class, called 'chat'. How can I get the application to dynamically make new instances of this class with unique names, for examples chatWindowUser1, chatWindowUser2.
    Below is some code utlising the Openfire Smack API but hopefully the principle is the clear.
        private void chatButtonActionPerformed(java.awt.event.ActionEvent evt) {                                          
            int selectedUserIndex = rosterList.getSelectedIndex();
            String selectedUser = rostAry[selectedUserIndex].getUser();
            System.out.println("Chat with: " + selectedUser);
            if (chatBox == null) {
                JFrame mainFrame = CommsTestApp.getApplication().getMainFrame();
                chatBox = new CommsTestChatBox(mainFrame,conn,selectedUser);
                chatBox.setLocationRelativeTo(mainFrame);
            CommsTestApp.getApplication().show(chatBox);
    }  

    yes, an array would work fine, just realize that by using an array, you're setting an upper bound on the number of windows you can have open.
    As for unique names, if you mean unique variable name, you don't need one. The array index serves to uniquely identify each instance. If you mean unique title for the window, set that however you want (username, index in array, randomly generated string, etc.). It's just a property of the window object.

  • Multiple AIA instances on same Linux box

    H,
    Can multiple SOA instances be deployed on same linux box then with AIA on top of it.
    Can some one pls answer this?
    Regards,
    Rakesh

    Yes you can but:
    Each SOA installation must be in his own ORACLE_HOME directory.
    Each AIA installation must be in his own ORACLE_HOME directory.
    You must point to different databases. You can not have mulitple SOA schema's in one sinlge database.
    Marc
    http://orasoa.blogspot.com

  • Multiple AIA instances on same server?

    Hi,
    Does anyone know how to install multiple AIA instances on the same SOA server? The installer hints that this might be possible, although I have not seen how this is done because the installer expects an empty oracle home path. The only information I have found so far is for an earlier 2.x release of AIA and that suggested:
    "Each SOA installation must be in his own ORACLE_HOME directory.
    Each AIA installation must be in his own ORACLE_HOME directory.
    You must point to different databases. You can not have mulitple SOA schema's in one sinlge database."
    Is this true?
    Thanks,
    Kev.

    957354 wrote:
    Hi Laxman,
    If its a testing purpose its ok to have a one oracle_home and single listener for multiple DB. One problem when applying oracle patches for one of the instances running in a multiple DB running then you need to bring all the DB running in that host since the oracle_home is sharing between all db instances.
    Thanks
    Sunil Rajesh K.C.Starting with 11g, patchset updates are full installs and done into a new home. This makes it possible to migrate one instance at a time. However, your point would be a consideration for one-off patches like CPUs.
    However, please note ... OP --- PLEASE NOTE even with multiple oracle homes, you still only need a single listener.

  • Multiple DMVPN Instances on Same WAN Interface

    Hi Folks,
    Is it possible to run Multiple DMVPN Instances on a single WAN Interface ? Can we for example configure 3 Tunnels on a Router using one same WAN Interface but running separate EIGRP Instances for each Tunnel ? Kindly let me know , Alioune

    Hi Alioune,
    Yes you can create DMVPN as you said with one WAN interface that is possible..... you can have multiple tunnel interfaces pointed to a WAN interface as the source interface which resides in public zone..... with different public ip's as the destination tunnel...
    interface Tunnel1
    description ** A-VPN Tunnel **
    bandwidth 100000
    ip vrf forwarding red
    ip address 10.0.252.2 255.255.255.252
    no ip redirects
    no ip unreachables
    no ip proxy-arp
    ip mtu 1500
    load-interval 60
    tunnel source GigabitEthernet0/0 (WAN Interface)
    tunnel destination  1.1.1.1
    tunnel protection ipsec profile dmvpn
    interface Tunnel1
    description ** B-VPN Tunnel **
    bandwidth 100000
    ip vrf forwarding red
    ip address 10.0.252.5 255.255.255.252
    no ip redirects
    no ip unreachables
    no ip proxy-arp
    ip mtu 1500
    load-interval 60
    tunnel source GigabitEthernet0/0 (WAN Interface)
    tunnel destination  2.1.1.1
    tunnel protection ipsec profile dmvpn
    like the above..... shown sample...
    Please rate if the given information helps!!!

  • Highly frustrated with Outlook 2013 Search People box bugs - Multiple Name Results for Same Contact & Inconsistent Results

    The Outlook 2013 "Search People" box does not function properly. It frequently displays incorrect results or a mess of duplicate results. I've reported previous issues about this and consolidating my posts into one (with screenshots this
    time). Hopefully this message will be forwarded to or seen by the Outlook programmers. It really needs to be fixed.
    Outlook 2010 and other prior versions worked perfectly. You search for name, you get ONE result with the info you're looking for. FAST AND EASY. But with Outlook 2013 Microsoft has created a heck of a mess resulting in huge frustration and productivity loss
    with such simple but important tasks.
    I have hundreds of contacts stored in my Outlook address book, and they all have COMPLETE contact info added. 
    One major issue that I'm experiencing in the new Outlook 2013 is that I now get average of 4 or more duplicate name results appearing for the same contact. And each result contains different and incomplete contact info, making it impossible for me to quickly
    find the basic info I'm looking for. The cause of this issue is that Outlook 2013 now provides results from not only your local address book(s), but it also shows results based  on your email history and social media accounts setup.
    And there's no way to turn this off, or at least specify what folders and/or accounts the People Search box should use.
    To make matters worse, the Microsoft developers conveniently forgot to add some form of an indicator (like a small icon besides each name result in the list)  that clearly indicates what result is from what source. So you must manually click on each
    result one at a time and repeat the search until you locate the correct one.
    For one specific example, I have a contact stored in my local address book called
    Infusionsoft. When I type "Infusionsoft" in the People Search box to quickly find a phone number, Outlook  2013 shows me 7 results with the same name. See the screenshot below:
    As you can see in the screenshot above, every result just says "Infusionsoft", so I have to manually click on each name result one at a time and repeat the process until I find the correct one from my address book. This same thing happens with other
    random contacts.
    From what I can tell, Outlook is pulling results based on  based on recent emails I've received from different people with "@infusionsoft.com" in their email address. So the first result shows "[email protected]" (just the email
    address), the second result shows "[email protected]", the third result shows "[email protected]" and so forth. I don't want Outlook to show all of that. I just want what's in my address book!
    And you would think that the last result would be the correct one from my address book, but no. Sometimes its the 5th result, and other times it's the 3rd or 7th result. So there's no freaking order of things here.
    We simply need the ability to turn off searching of email history and other accounts when using the People Search box. Problem fixed.
    (And please don't tell me that I need to "link" every incorrect result to one main contact. You shouldn't expect everyone to have to tediously link any and all results that appear to a record. ESPECIALLY when 5+ results for each contact appear regularly.)
    ISSUE 2: Some names must be typed in a different way for the Search People to locate them
    Another big issue I'm having with the Search People box is that some name searches don’t show the correct result, unless I search for their names in a different way.
    For one specific example, I have a contact stored in my address book named "Dave Johnson". When I type "Dave Johnson" in the Search People box, one result appears, but it's just his email address, only. It's not the result that's stored in my Outlook address
    book with his phone number, addresses, etc. Screen shot below:
    If I type in Dave's name reverse order (Johnson Dave),  no results are found at all.
    Now if I just type in just"Johnson" all by itself, it finds Dave's correct result (the one stored in my Outlook Address Book). Along with everybody else that has "Johnson" in their name (see screenshot below)...
    I double-checked how I have Dave's name programed in my address book, and it's in there as "Dave Johnson" for both the Full Name and File As fields. 
    Also, the name order shouldn't make any difference when using the People Search Box anyway. Sometimes I can find people by Last Name, First Name or First Name, Last Name. Only with random contacts does it get difficult finding  their info and
    I have to do strange things like this to find them from the People Search box.
    ISSUE 3: Some Search People results only yield an email address only.
    For other random contacts, some search results only yield an email address with no other contact details. But I can open the persons contact card from the address book manually, with the same email address shown! Screenshot below...
    In the screenshot above, I have outlined the Search People box results in red, and the Address Book results in green. You can clearly see that "Robert White" is a contact stored in my local address book with full contact details, but the Search People result
    only shows his email address! Again, it's not consitent. It's hit or miss with different people.
    ISSUE 4: Some results just don't appear at all, but they are in the address book
    Another issue I'm experiencing with the People Search Box is that some people simply  cannot be found. But I can see their contact info just fine if I click on the "People" tab down at the bottom of the page and type in their name in the "Search Contacts"
    field. Why can't the People Search box find certain people? I opened up their contact details and cannot find a single thing  that would prevent them from showing up in results.
    These are clearly serious bugs that need to be fixed. And I'm shocked as to how this got missed--or ignored during alpha and beta testing. I see the "idea" behind the developers having the Search People box search everything outside of the
    address book, but in real world application this causes a heck of a lot of problems & confusion, and it needs to be fixed ASAP.
    For technical details, I have Outlook 2013 running on two computers using hosted Exchange 2010. One system is Windows 7 and other is Windows 8. The same problems occur on BOTH computers. As far as my Outlook account setup, I have all contacts stored in the
    main address book (no sub-folders or other folders).
    Can someone help communicate this message to the Outlook developers??? The "Frown" button limits me to 100 characters and one image. There's no way I can communicate this level of detail and steps to duplicate in 100 characters!

    Thanks for your reply.
    1) The instant search boxes in each individual page work just fine. If I am on the People page and type in a name in the "Search Contacts" field, it searches my contacts and displays the results that I want. But I should not have to leave whatever screen
    I'm in to find people now. In Outlook 2010 and earlier versions, I could be on the calendar page and then search for a contact without clicking off the calendar completely. For productivity-sake, it's a huge waste of time and hassle now.
    2) I'm familiar with how contact linking works, and quite frankly it's a huge mess in general. I NEVER create multiple contacts for the same person. I get that Outlook 2013 get confused now when it detects a LinkedIn or Facebook account for the same person
    already in my Outlook address book, but we need to have options that allow us to turn off results from some or all social networks. This is a big part of the problem.
    Think about it this way - The average person has 150+ LinkedIn connections, and more for Facebook. Many people today have accounts for both and they are setup with the same email address. When Outlook 2013 has to scan all the networks IN ADDITION to your
    local address book(s), it's a no brainer that it can get very confused trying to display results.
    Another big part of the problem is that Outlooks new search system also scans your email history. I receive emails from people who use multiple email addresses, or emails from companies with multiple reps or ticket systems that send you a unique
    ticket ID # ending in the same email address domain. Now Outlook displays people search results based on everything under the sun in my email history. This is beyond frustrating (see my "Infusionsoft" screenshot above in the first post).
    Again, I want to stress that for the search examples I referenced, I only have one entry in my Outlook address book for each person. And that's all I want to find when I search for people--what's already in my own address book! 
    In summary:
    We need an OPTION to turn off searching external networks when using the People Search box
    We need an option to tell Outlook to not scan email history for people search results (I think this needs to be disabled entirely actually. It's not helpful at all)
    There should be a fixed priority for displaying people search results, with local address book results FIRST, followed by social network results.
    There should be a clear icon/indicator next to each result that gives you a clue as to where the result is coming from. Your address book? Facebook? LinkedIn? We should not need to click on each result to get a hint as to where it's coming from.
    Work out the bugs in general with the new search system.
    One other thing that I didn't mention is that the Search People box also shows results for people I'm not even "friends" or connected with on the different social networks. But I've noticed that some people use the same email address for those networks that
    I already have programmed for them in my address book, which is why Outlook sometimes shows me these results. Does that make sense?
    I'll try rebuilding the index, but after testing Outlook 2013 on 3 different machines so far and seeing the same results (all slightly different results on each machine and very inconsistent), I doubt this will address the issue.

  • Version 4 Bug - Multiple Object Editors of Same Object on Single Click

    Hi Jeff,
    thanks for your reply. You have missed that rule because you don't use SQL Developer for development. But never mind, lets go through it...
    1) Of course I have both options activated (all preferences were imported from previous version). The difference between previous version is that when you click on the SAME table multiple times - in the old version, it opened the table just once and in case you had another tab active, it swithed to the tab where the table was opened. So to have it clear, in the old version when you have table A and table B, both opened in separate tab and the focus was on table B, when you clicked on table A (in the tree) it activated tab with table A. It didn't create new tab with table A. Of course - why would I want to have multiple tabs opened with the same table??? In current version clicking on the same table multiple times, opens multiple tabs with the same table.
    This is also the reason why it sometimes openes a table multiple times even when you click it just once. This you cannot simulate because you are probably connecting to some local DB when you have perfect connection. Activate the autopin function and connect to different DBs all over the world and you will see what I mean. Right now, I have opened a connection and got 3 tabs opened, just after a single click on a table.
    2) Fetch size is again taken from previous version of SQL Developer and is set to 50. PgUp and PgDown are not working at all. I am talking about scrolling with a mouse wheel. In the old version it is working normally as expected. In this version if you scroll using a mouse wheel, the scroll speed is about 1 or even 0.5 lines per wheel round - so you can even not use a mouse wheel for scrolling! On all other places in this new release (connection tree, packages, ...) the scrolling is working normally, in the table it is unusable.
    3) I don't say it is on every table and every click. I cannot tell you how often is it because I am not using the new version. I am quite sure this is dependent on the connection speed maybe connectin quality. The difference between previous version is that in the previous version, refresh always worked. This particular issue cannot be solved by testing and searching for some rule when it happens. You must check the code and see when you display it!
    4) My screen resolution is 1920x1200, but that is only because I have an external monitor connected to my laptop. My laptop resolution is only 1366x768. Switch to this resolution and open the View menu.
    New worksheet - yes, this is exactly what I mean. I have planty of connections, for sure over 100 - but this is irelevant. Whenever you do a menu which can grow, you need to do it scrollable!!!
    I am not sure what you mean by Flyout menus, but I am scared only to hear about it

    Screen resolution, no scrolling on menus - that's a bug. Severity 2, a bad one, as you have noticed, and we'll try to make sure it's addressed for version 4.0.
    The other issue isn't as straightforward as you insinuate. I know you don't care about the particulars or why you might see this issue, so I won't bore you. But, we are aware that this is still coming up more frequently that it should, and we're on a big bug hunt to eradicate the behavior completely. It's not a simple thing, so it will more likely be incremental improvements. That being said, we are seeing it MUCH less than in previous versions of the tool.

  • Multiple browser instances receiving same session ID

    I am using Firefox with OC4J, and I've discovered that multiple simultaneous instances of the browser are receiving the same session ID. This is a pretty serious problem I beleive, as it prevents the ability to safely store one browser instance's state information safely in the session. In other words, one browser instance's behavior can stomp on another browser instance's state data.
    Does anyone know what criteria OC4J is using to determine session IDs, and whether to create a new session or deliver an existing one?
    Thanks,
    Brad

    Tugdual,
    Another comment -- the case where the cookie does not exist or is expired isn't the problem. The problem is when the cookie is valid and another browser instance is opened. Since the browser instances access the same cookie, you have no way of knowing on the server side that you are actually talking to two different browser instances. Hence, any storage of state information that is contextual has the potential to be stomped on by the other browser instances.
    In my case, one browser instance (the result of a new window spawn in a UIX page) was knocking over the original window, because it was overwriting some important state infomration.
    Brad

  • Multiple dialog instances on same host for different System

    Dear Sir,
    I install two dialog instances on same host ,one for DEV one for QAS.
    First I install dialog instance for DEV and startup with no error.
    Second dialog instance for QAS install with success end ,but can not start dispatchers.
    Service
    sapmsDEV     3600/tcp     # SAP System Message Port
    sapmsQAS     3601/tcp     # SAP System Message Port
    sapdp01s  4701/tcp  # SAP System Dispatcher Security Port
    sapgw01s  4801/tcp    # SAP System Gateway Security Port
    sapdp00       3200/tcp     # SAP System Dispatcher Port
    sapdp00s  4700/tcp # SAP System Dispatcher Security Port
    sapgw00       3300/tcp # SAP System Gateway Central Instance Port
    sapgw00s  4800/tcp # SAP System Gateway Security Port
    Disp_dev
    ***LOG Q0I=> NiPConnect2: SiPeekPendConn (10061: WSAECONNREFUSED: Connection refused) [nixxi.cpp 8716]
    ERROR => MsIAttachEx: NiBufConnect to sap-qas/sapmsQAS failed (rc=NIECONN_REFUSED) [msxxi.c      633]
    ***LOG Q0L=> DpLoopInit, nomscon () [dpxxdisp.c   1549]
    Stderr
    D:\usr\sap\QAS\D01\work>ntscmgr start MSSQLSERVER -m sap-qas
    failure: StartService, NT ErrorMessage: An instance of the service is already running. StartService SUCCESS
    D:\usr\sap\QAS\D01\work>ntscmgr start SQLSERVERAGENT -m sap-qas
    failure: StartService, NT ErrorMessage: An instance of the service is already running. StartService SUCCESS
    It seem that first startup dialog instance already start MSSQLSERVER -m sap-dev and SQLSERVERAGENT -m sap-dev, so next instance can not start again ,and cause NICONN_REFUSED.
    Could someone help me?
    Thanks
    Regards,
    Matt

    It appears to be possible, at least in IDM 7.1
    The release notes and Installation guide reference a setting called waveset.serverId that you set in your application server startup script like so:
    -Dwaveset.serverId=Name
    This would allow each JVM to identify itself differently from any others running on the same physical server.
    I haven't tried this yet myself, so caveat emptor.
    Jason

  • Multiple IDM instances on same host

    Can multiple Identity Manager app server instances be run on the same host, connecting to the same db? If so, how is this accomplished. From what I see Identity Manager instances attempt to register themselves using the host name. Is there a property in the properties file that can set a unique name?

    It appears to be possible, at least in IDM 7.1
    The release notes and Installation guide reference a setting called waveset.serverId that you set in your application server startup script like so:
    -Dwaveset.serverId=Name
    This would allow each JVM to identify itself differently from any others running on the same physical server.
    I haven't tried this yet myself, so caveat emptor.
    Jason

  • Multiple SIM instances on same db - disable Active Sync for one?

    Hello. I am trying to set up two instances of Identity Manager that are running on the same machine and are connected to the same database.
    I want one to be doing the Active Sync provisioning and the other to not.
    Is there a way to disable Active Sync resources from starting up on one instance but not the other? I know I can manually start them, but I'd like the Active Sync resources to automatically start up for one of the servers.
    I am using -Dwaveset.hostname and setting it to a different value for each instance.
    Thanks.

    957354 wrote:
    Hi Laxman,
    If its a testing purpose its ok to have a one oracle_home and single listener for multiple DB. One problem when applying oracle patches for one of the instances running in a multiple DB running then you need to bring all the DB running in that host since the oracle_home is sharing between all db instances.
    Thanks
    Sunil Rajesh K.C.Starting with 11g, patchset updates are full installs and done into a new home. This makes it possible to migrate one instance at a time. However, your point would be a consideration for one-off patches like CPUs.
    However, please note ... OP --- PLEASE NOTE even with multiple oracle homes, you still only need a single listener.

  • Multiple WL instances on same machine with multiple clusters

    Hi,
              I am wondering if it is possible to run two separate instances of WL on a
              single machine, with each instance belonging to a separate cluster? The
              machines are not multi-homed, so each instance must listen on a separate
              port.
              Our current architecture looks like this:
              4 web servers running NSAPI WL plug-in
              3 app. server boxes running WL 5.1 SP2
              I would like to start multiple instances of WL on each app. server to better
              utilize the hardware, and would like each instance to be part of a separate
              cluster.
              My questions are:
              1. Do I have to have a separate multicast address for each cluster, or can
              I use the same address since the clusters are on different ports?
              2. In the NSAPI plug-in, you simple specify a list of all the servers for a
              cluster. Are there any issues with having the machine/port names in this
              list belonging to different clusters?
              Thanks,
              Bob
              

    Comments inline.
              Cheers - Wei
              www4.weblogic.com <[email protected]> wrote in message
              news:[email protected]...
              > Hi,
              >
              > I am wondering if it is possible to run two separate instances of WL on a
              > single machine, with each instance belonging to a separate cluster? The
              > machines are not multi-homed, so each instance must listen on a separate
              > port.
              Yes, you can. FYI, in addition, each cluster use different multicast
              address.
              >
              > Our current architecture looks like this:
              >
              > 4 web servers running NSAPI WL plug-in
              > 3 app. server boxes running WL 5.1 SP2
              >
              > I would like to start multiple instances of WL on each app. server to
              better
              > utilize the hardware, and would like each instance to be part of a
              separate
              > cluster.
              >
              > My questions are:
              >
              > 1. Do I have to have a separate multicast address for each cluster, or
              can
              > I use the same address since the clusters are on different ports?
              Different multicast addresses.
              >
              > 2. In the NSAPI plug-in, you simple specify a list of all the servers for
              a
              > cluster. Are there any issues with having the machine/port names in this
              > list belonging to different clusters?
              In-memory replication will not work.
              >
              > Thanks,
              > Bob
              >
              >
              >
              

  • Parallel processing on multiple IdM instances -- real enterprise class

    Hi all. We run what we earnestly hoped would be a true enterprise class IdM v6 SP1 installation: 2x v440 Sol9 app servers each with 2 IdM instances (AS virtual servers), each host dual CPU and 4GB RAM available; connected to a 4 node dual CPU Oracle RAC cluster.
    But our performance, to use a technical term, sucks bollocks, and has done for >12 months. The main area where this hurts is when we run a DBTable ActiveSync process to update the user base and any associated resources.
    We suspect a few things, but ultimately the most frustrating and intractable problem is this: IdM processes all the Update User tasks stemming from the ActiveSync poll one by one, sequentially, in series, and all on the originating IdM instance. So if we have, say, 5000 updates to process, we watch 5000 sequential User Update tasks, one after the other. Even if each task takes only a couple seconds, we often notice inexplicable gaps of many seconds between one sequential task completing (start time + execution time) and the next beginning. The end result is a throughput rate of usually less than 300/hr -- more than 10hrs to process those 5000 updates!
    Despite setting the [custom] Update User wf to execMode='async', IdM seems to refuse to run these tasks in parallel. In an installation of this size and resource capacity, this is excruciating. Plus there's the fact that as I write, and as it crawls along, the IdM instance running the tasks is showing up in prstat like this:
    PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
    28946 sentinel 2583M 2379M cpu3 28 0 87:27:53 25% appservd/177
    That's quite a lot of resource-use for not a lot of outcome...
    So, does anyone know: how can we get these tasks to run multiple in parallel rather than sequentially; how can we get the task load to be spread across all 4 available IdM instances rather than just the one that executed the ActiveSync poll?
    In long suffering desperation, any help greatly appreciated!
    PS - 2 things regarding parallel:
    1. on the TaskDefinition for the Update User wf, there is also an attribute named 'syncControlAllowed' -- anyone know what this means/does? Would setting it to 'false' perhaps give us true async/parallel mode?
    2. I suspect forcing the task into background could potentially give parallel behaviour, but the problem is that Update User is of course called by any user update task, and when done interactively the administrator may not wish to have the task run in the background.

    Hi,
    i'm afraid i don't know an easy answer to your question. But there are several things that should be considered:
    1) 12s average update time seems a lot. I'm sure that can be optimized. Have you thought about a dedicated sync form (assigned to the proxy admin used for active sync)? If you have that you might also consider setting viewOptions.Process there to use a simplified workflow optimized for your sync process. Take a look at the dynamic tabbed user form example as well - some of the resources you have may not be subject to synchronization and those should be ruled out by setting the sync forms "TargetResources" property to an aproptiet value.
    2) i recently found an interessting way of parallelizing tasks. This is potentially dangerous as you have to build something in that prevents this from being a "fork bomb". Still some example code for a simple scenario where you just want to sync global.email, populated by your AS form. If the workflow consisted out of "start", "nonblocking task launch" and "end" the "nonblocking task launch" had an action like
    <Action id='0'>
        <expression>
          <block>
            <defvar name='session'>
              <invoke name='getLighthouseContext'>
                <ref>WF_CONTEXT</ref>
              </invoke>
            </defvar>
            <defvar name='tt'>
              <new class='com.waveset.object.TaskTemplate'>
                <invoke name='getObject'>
                  <ref>session</ref>
                  <s>TaskDefinition</s>
                  <s>Nonblocking Workflow</s>
                  <map/>
                </invoke>
              </new>
            </defvar>
            <invoke name='setSubject'>
              <ref>tt</ref>
              <invoke name='getSubject'>
                <ref>session</ref>
              </invoke>
            </invoke>
            <invoke name='setVariable'>
              <ref>tt</ref>
              <s>accountId</s>
              <ref>user.waveset.accountId</ref>
            </invoke>
            <invoke name='setVariable'>
              <ref>tt</ref>
              <s>email</s>
              <ref>user.global.email</ref>
            </invoke>
            <invoke name='runTask'>
              <ref>session</ref>
              <ref>tt</ref>
            </invoke>
          </block>
        </expression>
      </Action>The workflow "Nonblocking Workflow" then would have accountId and email available in its variables and if it is defined as "async" it will really be launched that way - build in something that prevents your system from exploding...
    3) probably safer than trying what i implied in 2) (i only used this for a totally different task that can not explode) you could consider to have several instance of the database table resource adapter. Lets say your primary key in the db is "employeeId". If you define for seperate resources, each handling employeeIds modulo [1,2,3,4] only you could distribute the load among your cluster. I did a similar thing with flatfileactivesync before.
    4) back to the average 12s again. If you don't have some slow resources this could mean that the parallel resource limit kicks in. Take a look at waveset.properties about limits like this.
    Synchronization is not the ootb strength of IDM - but with some optimization you should be able to get to reasonable results.
    Regards,
    Patrick

  • Multiple Application Instances Accessing Same DAQ Device

    I have a fairly straightforward application that reads from a wireless DAQ device (NI-9205 connected to NI WLS-9163).  I'd like to run multiple instances of the executable, but I get error -201105 (resource reserved) when the DAQmx task is started on the second instance.  Each instance is attempting to acquire from different channels from the same DAQ device.  Is this an issue with the DAQ device in particular, or with DAQmx in general?  Thanks.
    -Joe
    Solved!
    Go to Solution.

    Hi Joe,
    Unfortunately you can only access one type of channel with each program.  For example you could have one program access AI and another use AO, but you cannot have two different programs access AI from the same card.  This is common among all of NI DAQ devices.

Maybe you are looking for

  • New SpryWidget .CSS for a New Page

    I have the whole spry arsenal of files on a website in a separate folder. I am already using several widgets and functions from that and among others also a "spry collapsible panel" widget on one of the pages. Now, I would like to use it once again o

  • Opening Word document - font not recognised

    Hi there, I have opened a document I wrote in word. The body text is Sylfaen. Unfortunately, as this font is not "supported" the document will not show the text in the body of the document. Is there an easy solution to this that aninternet troublesho

  • Setting the Divider in JSplitPanes

    Hi My problem is this... when I create my first internal frame the divider that splits the panes is set in the correct position, however for every internal frame that is created after this one the divider is not in the correct position. I create the

  • Variable to track position in timeline

    Hi guys, I am trying to create a variable in Actionscript 2 that will record the position in the timeline, so Flash knows the user's last position on the timeline. The first line in the mc is: var portfoliostate; On frame 20 of the timeline, I have t

  • Changing UID in iSeries

    Hi all, I am running ECC 6.0 SR3 on IBM iSeries V5R4 I'm trying to share transport directories between two sap instances via CHGR3SHLOC. I can run the command successfully, but in STMS I got message: Don't have permission to folder /usr/sap/trans/bin