Drop insert in receiver system with multiple clients

Hello,
does TDMS handle drop-insert technology in a multiple client receiver system automatically?
What can be the impact for the other clients when they are working while data deletion in the
receiver client?
Regards Karlheinz

Hello Karlheinz,
Good, question is straight and clear now.
please refer to steps mentioned in oss note 1433553 to make sure that TDMS should not consider drop_insert in TDMS migration.
Regards,
Amit Sharma
Solution
You have the possibility to set a Global Parameter for setting the deletion
scenario to overall array delete. In the following a description of the
proceeding.
Check if the global parameter GLOBAL_NO_DROP_INSERT exists
and that it is set to 'X' in the receiver system.
Call the Migration Server Overview(tcode cnv_mbt_tdms).
Expand the tree until you get your package.
Mark the package number so that it is highlighted.
In the menu click on Goto->Global Parameter.
When you have correctly positioned your cursor on a package number you
will see in the application toolbar buttons named with the exection targets,
system name and client number. You can also see if a connection to the listed
system is working (checkmark) or not (lightning).
Click on the button
'RECEIVER' to get the global parameters from the receiver system. This is where
the Global Parameter has to be set.
The global parameter entries will be
delivered empty and for the parameter you want to use you have to set the value.
An initial global parameter has no value in the column 'Client'.
Mark the row with the global parameter
'GLOBAL_NO_DROP_INSERT'.
Press button copy text (third button).
In the menu bar click on the drop-down box of the insert button and choose
the item 'Insert in new row' in the selection list (forth button from
left).
In column 'Client' enter the client where you want to use the overall
scenario array-delete. If you enter the value 'ALL' then the setting is valid
for all clients in the system.
In the column 'Parameter Value (from)' enter the value 'X'.
Save your settings.
If the parameter already exist you have to check whether the correct
client is set. If the column 'Client' includes the deletion client or the value
'ALL' then no further settings are required. Otherwise you have to copy the
Global Parameter as previously described and change the value in the column
'Client' with your deletion client. Take care that the value in column
'Parameter Value (from)' is 'X'.
From now on the generation of deletion
programs will use this information to create the deletion programs with deletion
scenario ARRAY-DELETE.

Similar Messages

  • How to control one server with multiple clients via TCP/IP

    I am wanting to control a single server with multiple clients.  Only one client would be active at a time, so there would be no conflict.  I want to use TCP/IP.  So far, I have programmed a cluster that passes data back to the server with no problems.  The challenge come in when a second client is added to the mix.  I have't been able to figure out how to turn each client on and send the appropriate data and then turn it off so it doesn't keep sending the same data to the server. 
    Here are the things that I have considered and did some preliminary testing, but don't really know how to impliment:
    1.  Send a numeric on the front of the cluster packet that tells the server that data is on the way.
    2.  Send a boolean on the front of the cluster packet to somehow turn the server TCP/IP on.
    The problem I have found is that LabVIEW TCP/IP doesn't like to be turned on and off.  If it doesn't get the data it expects, it goes into a reset mode and that kills the response time.
    Any help?

    You should consider implementing a set of simple one-byte commands that can be sent back and forth between the Server and the Clients. You can base all of these ideas off the example in the Example Finder under Networking >> TCP and UDP called Multiple Connections - Server.
    You will have two loops in the server VI: one to wait for new connections, and one to send and receive data from the existing connections. For instance, after one of the clients connects, it can request control of the server to send data to it by sending the character "R" for request. Every time the send/receive loop of the Server executes, the first thing it can do is to check all the existing connections to see if any of the clients have sent a control request ("R"). If so, it will create a buffer (array) of control requests. This could be in the form of Connection IDs or indexes in the array for a particular Connection ID. Your choice.
    After the Server receives a request for contol, if it is not already under control by another client, then it can send a response to the first client on the control request list. For instance, the server could send the first client a "S" command for send. Note that after the clients send their control request, they should execute a TCP Read and wait indefinitely for the server to respond with the one-byte "S" command. Then, once the client in control is finished sending data to the server, it could send the character "X" telling the Server to release it from control.
    The example I mentioned above already does a similar thing. Note how when a client wants to disconnect, they send the letter "Q". You can see this in the Multiple Connections - Client VI. The Server then checks each individual connection to see if it's received this one-byte command, and if it has, it closes the connection to the client. This is what you would want to implement, but instead of having just one command, you'll have to distinguish between a few and build up a buffer of control requests.
    Finally, if a client does decide to disconnect in your application, they could send the command "Q" just like the example above. At this point, close the connection and remove that Connection ID from the array of connections. You will also have to handle the case that this client was in the request control waiting line when it disconnected, in which case you need to delete it from that array as well.
    This will definitely work for you, but it will take some work. Best of luck!
    Jarrod S.
    National Instruments

  • How does create a server with multiple Clients ?

    Any people can lead me .
    How does create a server with multiple Clients ?
    Thanks

    For a multithreaded server you will need a thread to listen and at least one thread per client. If the conversation is half duplex, one thread per client works very well, if it's full duplex you will find one thread to send and one to receive much easier to program.
    I posted a Simple Socket Server that uses 1+2*clients threads.

  • Automated deployments of Windows 7 on systems with multiple hard drives

    Last week I helped a customer use MDT2010 to deploy Windows 7 to ThinkStation systems with multiple hard drives.  The customer has multiple HDDs in the system and wants Windows to be installed to the HDD that is connected to SATA port 1.  Unfortunately Windows does not always assign "Disk 0" to the HDD on SATA port 1 - in fact it is completely random what disk ID gets assigned to which SATA port.  The bug is documented by Microsoft in KB937251:
    http://support.microsoft.com/kb/937251
    MDT2010 uses hard-coded disk IDs (0, 1, 2, etc) to specify where Windows gets installed.  And because of the bug, sometimes Windows gets installed to the HDD on SATA port 1 and sometimes it gets installed to a different HDD.
    The solution is to install Windows to the HDD identified by the "SELECT DISK SYSTEM" command of DISKPART.  This will always return the disk that is connected to the lowest SATA port.
    To configure this in MDT2010, use the following steps (refer to the attachment):
    1. copy "FormatPartition.txt" and "SystemDisk.vbs" to your Scripts folder in the Deployment Share. 
    2. in your Task Sequence, disable the existing step called "Format and Partition Disk" (see TaskSequence.jpg)
    3. create a new step at the same location called "Format and Partition Disk (custom)". The type is "General -> Run Command Line". The command line is " cmd.exe /c "diskpart /s %SCRIPTROOT%\FormatPartition.txt" "
    4. on the main screen for Deployment Workbench, right-click on the Deployment Share and select "properties", then click on the "rules" tab
    5. under section [Default], add the following entries (see Rules.jpg)
        - UserExit=SystemDisk.vbs
        - DestinationDisk=#DiskID#
        - DestinationPartition=1
    Hopefully this info will help someone else!
    Attachments:
    MDT2010.zip ‏261 KB

    Last week I helped a customer use MDT2010 to deploy Windows 7 to ThinkStation systems with multiple hard drives.  The customer has multiple HDDs in the system and wants Windows to be installed to the HDD that is connected to SATA port 1.  Unfortunately Windows does not always assign "Disk 0" to the HDD on SATA port 1 - in fact it is completely random what disk ID gets assigned to which SATA port.  The bug is documented by Microsoft in KB937251:
    http://support.microsoft.com/kb/937251
    MDT2010 uses hard-coded disk IDs (0, 1, 2, etc) to specify where Windows gets installed.  And because of the bug, sometimes Windows gets installed to the HDD on SATA port 1 and sometimes it gets installed to a different HDD.
    The solution is to install Windows to the HDD identified by the "SELECT DISK SYSTEM" command of DISKPART.  This will always return the disk that is connected to the lowest SATA port.
    To configure this in MDT2010, use the following steps (refer to the attachment):
    1. copy "FormatPartition.txt" and "SystemDisk.vbs" to your Scripts folder in the Deployment Share. 
    2. in your Task Sequence, disable the existing step called "Format and Partition Disk" (see TaskSequence.jpg)
    3. create a new step at the same location called "Format and Partition Disk (custom)". The type is "General -> Run Command Line". The command line is " cmd.exe /c "diskpart /s %SCRIPTROOT%\FormatPartition.txt" "
    4. on the main screen for Deployment Workbench, right-click on the Deployment Share and select "properties", then click on the "rules" tab
    5. under section [Default], add the following entries (see Rules.jpg)
        - UserExit=SystemDisk.vbs
        - DestinationDisk=#DiskID#
        - DestinationPartition=1
    Hopefully this info will help someone else!
    Attachments:
    MDT2010.zip ‏261 KB

  • With the new Time Capsule does the beam forming occur with multiple clients, and do these clients have to be 802.11ac compatible?

    With the new Time Capsule 5th Gen does the beam forming occur with multiple clients, and do these clients have to be 802.11ac compatible?

    does the beam forming occur with multiple clients
    Yes, but Apple is unclear about how many cients can be connected simultaneously with this feature.
    do these clients have to be 802.11ac compatible?
    Yes

  • After migration from sccm 2007, there are many systems with no client installed

    Hi Everyone,
    We have migrated our environment from SCCM 2007 to SCCM 2012 , And Manual client push installation has been done by HeadQuarter SCCM admins on site code of our region.
    But as i see , in all systems collection based on OU, there are approx 50% systems with no client installed.
    There may be some stale systems in AD.
    Is there any way so that i can list out all Stale or old computers which are not in use anymore records of systems from Active directory and so that i move them to OU for which system discovery is not enabled.
    Also, it will very useful if i get more information on lastLogonTimeStamp and such more properties which specifies system as stale or OFF the network for some period..

    You could also remove the objects without a client and adjust the settings in the
    Options tab of the Active Directory System Discovery Properties. By tweaking those options you can make sure that you're not discovering those old objects in the first place.
    My Blog: http://www.petervanderwoude.nl/
    Follow me on twitter: pvanderwoude

  • Creation of multiple connectors if we have backend systems with multiple

    Hi All,
    If I have 5 backend systems with 2 clients each.
    Do I need to create UWL connector for each client.
    Regards
    Suneel

    Hi,
    You have to create a connector for each system alias. So if you have a backend with 2 clients and you want to retrieve work items from both clients you will have to create 2 systems (and 2 aliases) and 2 UWL connectors.
    Regards,
    Pierre

  • Problem with multiple client numbers from a view

    Hi Gurus,
    I have a problem with a view
    Creates a view with a UNION ALL stmt
    =====================================
    Create view vw_benifits
    as
    SELECT
         Client_num, -- can have multiple values like 200,201,250
         PERNR,     
         OBJPS,     
         ENDDA,     
         BEGDA,
         AEDTM,     
         UNAME,
         COB_MNTH_AMT
    FROM
         STG_SAP_PA9211_TB
    UNION ALL
    SELECT
         null, -- no client number for legacy data
         PERNR,     
         OBJPS,     
         ENDDA,     
         BEGDA,
         AEDTM,     
         UNAME,
    COB_MNTH_AMT
    from
         LEG_STG_SAP_PA9211_TB;
    ==============================
    The second table contains legacy data (LEG_STG_SAP_PA9211_TB). The first table now contains multiple client data (ie the client_num can be 201,202,250 like that.
    Now if the users qery the view they will only get that clients data.
    eg selet * from vw_benifits where client_num=250 results only client 250 data. But I want to add the legacy data also with that.
    I don't want to propose
    selet * from vw_benifits where client_num in (250,NULL) since the users will be confused.
    Is there any other way to do this . my requirement is like
    If they query
    select * from vw_benifits where client_num=250, the data should include all the records satisfying client=250 + the records from the legacy data. The view need to be created like that.
    Appreciate your help
    Deepak

    Hi Thanks for the suggestion.
    But I am not sure this may work for me. Here my users may not be able to use that since they don't know Oracle.
    I want to hide that details from them
    They may just issue a statement like this
    select * from vw_benifits where client_num =250
    Or
    select * from vw_benifits where client_num =400 . But both times I need to show them the data from the legacy table.
    Deepak

  • Conditional routing - 1 sender to 1 receiver but with multiple locations

    Hello Experts,
    I have a scenario where i am trying to post ALEAUD Idocs (acknowledgement Idocs) from ECC - PI - MDM.
    I need these acknowledgement statuses to get updated in MDM (receiver system) for MATMAS, CREMAS and DEBMAS.
    I am through till receiving  the acknowledgemnts in PI. I am stuck at a point wherein I need to route MATMAS related messages to a different folder in the receiver system (MDM) wheraes messages realted to CREMAS should be routed to another folder in the same receiver system (MDM) and similar is the case with DEBMAS.
    ALEAUD Idoc has an element <MESTYP> which identifies whether the acknowledment belongs to MATMAS, CREMAS or DEBMAS, but i cannot use Reciever determination for conditional routing in this case.
    Will BPM help in this case? If not, kindly advice the appropriate solution.
    Thanks in advance,
    Elizabeth.

    Have you tried using Enhanced Receiver Determination? You need to define a mapping first
    ALEAUD -> ReceiverDetermiation and use this mapping in your receiver determination step
    in the Integration Directory. Its fairly flexible.
    SAP ABA software component version, http://sap.com/xi/XI/System, ReceiverDetermination
    Edited by: Sven Buttler on Sep 14, 2010 2:38 PM

  • Does child systems with 3 clients need 3 RFCs?

    Hello
    One quick question
    Does child system that has 3 clients need 3 RFC conenctions to connect to CUA?
    We have ECC with 3 clients. When I go in one client SM59 and create RFC connection to CUA, everything is good.
    When I go in SM59 of other client and I create RFC(same as logical name of CUA) , it says it already exist since I created in my previous client
    Any thoughts? I know from CUA I would need 3 RFCs for the 3 clients but from the child do I need 3 RFCs? If yes, its not allowing.

    Yes, normally the logical system name is used and having this the same as the RFC destination helps.
    But this does name a type of "name space" implication...
    Perhaps you want to consider where you have your master system and use client side security (the authorization group concept for S_RFC_ADM, and S_ICF type DEST to call them?
    Even if you restrict RFC, it will always need to do that which is is designed to do. Client side security makes sense in cases such as CUA.
    Cheers,
    Julius

  • One report, One Source System with multiple Company Codes -- Authorization

    Hello Guys
    We have 2 DEV source systems for our BI implementation right now. one for US (CCode - 406) an one UK(CCode - 301).
    We have already completed the implementation for UK with 38 reports.
    we are right now moving the US implementation.
    when we move to QAS we are going to have one Source system with both US and UK data.
    so when we move to QAS, the US clients wants to view the reports developed in UK implementation with their own data.
    How can we do that. since some reports doesn't have company code to restrict the data to respective users.
    Thanks and Kind regards,
    shekar.

    Hi
    First make the company code authorization relevant in infoobject BEx explore tab
    If your in BI7 , you have analysis authorization concept
    http://help.sap.com/saphelp_nw70/helpdata/en/66/019441b8972e7be10000000a1550b0/frameset.htm
    Regards
    N Ganesh

  • Received message with invalid client

    Logs on one Lion 10.7.5 machine are full of
    dscl[48193]: received message with invalid client_id 3
    The PID keeps incrementing but the client_id is always 3
    Googling mainly leads back to:
    https://discussions.apple.com/message/18643232?searchText=Received%20message%20w ith%20invalid%20client#18643232
    But this system isn't using LDAP.  I found one post that suggested stopping and restarting AFP, but:
    macbook:~ joliver$ sudo serveradmin stop afp
    afp:error = "CANNOT_LOAD_BUNDLE_ERR"
    macbook:~ joliver$ sudo serveradmin start afp
    afp:error = "CANNOT_LOAD_BUNDLE_ERR"
    Any ideas?

    You may find the solution here:
    https://discussions.apple.com/thread/3602806
    SQL

  • BI system with additional client for non-BI application

    We have a test SRM system with the BI_CONT add-in loaded.  Our intent was to use one client for BI and another client for SRM unit testing.  It is feasible to run BW in the same physical instance as SRM, given that they are both built on NW 70, and we loaded the BI_CONT.
    In the BW client (100) I try to create a source system for the SRM app (client 400).  After I enter the RFC destination (SRMCLNT400) and necesasry credentials, the system tries to sign me back into client 100.  Then it gives error "SRDCLNT100 already exists".  That source does exist because it is the BI souce, and I never specified SRDCLNT100.  I used the RFC destination created for SRDCLNT400.  Why might this be happening because to the BI client (100), it shouldn't be able to distinguish between a source system that's on the same physical instance (different client) versus a differnet instance/host.

    Hi
    Somehow yes, but as I said:
    I faced the problem with "The logical system name has changed" (exit only). I tried to solve it by running BDLS but it did not solve the problem.
    This is why I asked about the proper approach. Your proposal is a little bit different to my last try, because you suggest to copy 800 to the new client. I have used 000 as a source for copy.
    My main concern is what with some functionalities in client 800 if I move BI to the new client (this means RSA1 will not work in 800).
    See here (though this is for solution manager): Re: BW / SolMan Logical System Change
    This is why I considered using the same client for ERP and BI (only 800), but here I am not sure if there are some disadvantages (but compared to having Bi on different client, so database size is not an issue).
    Do you know what will be wrong to use only client 800 and only add BI CONT to the system ? Do you know any SAP notes which says that this is wrong?
    regards
    Rafal

  • How do you install Windows 8.1 on a system with multiple hard drives?

    Specifically a system with a User folder located on more than one drive. I have programs installed on both drives in order to save space on one (a small SSD boot drive). Upon trying to install windows 8.1, the Windows Store tells me my PC can't run Windows
    8.1 and gives me the error 0xc1900102. Suggestions?

    Got it working :D... But it eats some time tho...
    First run a cmd with admin privileges.
    Then mklink /j C:\Users D:\Users
    (Change D if you have users on other drive)
    Now follow this guilde untill the profiles directory
    http://www.eightforums.com/tutorials/4275-user-profiles-relocate-another-partition-disk.html
    Change it to %SystemDrive%\Users
    Finish the guide and let it do its thing. (This will leave your Users map on the HDD)
    Now activate the Administrator account
    http://www.eightforums.com/tutorials/9650-built-administrator-account-enable-disable-windows-8-a.html
    Remove the mklink of C:\Users. Then copy the (hidden) Default User profile from D:\Users to C:\Users (yes create Users on the C partition)
    Then log off and log in as the admin account.
    Create a new online account (get an alternate email or make an account alias at https://account.live.com/summarypage.aspx)
    Log in with that account.
    Download and install the windows 8.1 Upgrade and let it finish everything (Took 3 hours at me)
    Then login with your main account. It will generate a new account.
    Restart your PC and login with the admin account.
    Goto C:\Users and look what name it got. If the name is crappy then you can rename it at: 
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<your profile ID>
    Then do a mklink /j C:\Users\<ProfileName> D:\Users\<ProfileName>
    Now restart the pc and login on your main account.
    If everything went well you will have your old account back.
    Now you can remove the C:\Users map and do a mklink /j C:\Users D:\Users
    P.S. My store doesn't work anymore after this...

  • Help needed in running the RMI application with multiple clients

    Hi
    I have my RMI application with one server and 6 clients. I keep all the server and client programs in the same directory. When i run the clients, the first 2 clients work properly but when the third or the fourth client starts, it works normally in getting the data and after a while it crashes. If teh third crashes the 4th works and if the 4th crashes the 3rd, 4th and 5th works ...randomly atleast one or 2 clients crash always.
    following is the error message generated for a client named controller:
    [ code ]
    Exception in thread "main" java.lang.NullPointerException
    at PostOfficeImpl.isinputAvail(PostOfficeImpl.Java:315)
    at PostOfficeImpl_Skel.dispatch(Unknown Source)
    at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:375)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240)
    at sun,rmi.transport.Transport$1.run(Transport.java:153)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun,rmi.transport.Transport.serviceCall(Transport.java:149)
    at sun,rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
    at sun,rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
    at java.lang.Thread.run(Thread.java:595)
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:343)
    at PostOfficeImpl_Stub.isinputAvail(Unknown Source)
    at CONTROLLER.main(CONTROLLER.java:167)
    my ser ver program is as follows:
    class PostOfficeServer extends java.rmi.server.UnicastRemoteObject implements java.rmi.Remote {
    // Instance of ourselves
    public static String name;
    private static PostOfficeServer rmi;
    // public No-argument constructor
    public PostOfficeServer() throws RemoteException {
         super();
    public static void main(String[] args){
    if(System.getSecurityManager() == null) {
         System.setSecurityManager(new RMISecurityManager());
    try {
         new PostOfficeServer();
         PostOffice postOfficeserver = new PostOfficeImpl();
    try {
         getIP ipAdd1 = new getIP();
         String ip1 = ipAdd1.getIP();
         name = "//" + ip1 + "/PostOffice";
    catch (Exception e){
         System.out.println();
    Naming.rebind(name, postOfficeserver);
    System.out.println("RemoteServer bound");
    System.out.println("initialise Data Structure");
    postOfficeserver.initDatastructure();
    System.out.println("initilised");
    catch (java.rmi.RemoteException e) {
         System.out.println("Cannot create remote server object");
    catch (java.net.MalformedURLException e) {
         System.out.println("Cannot look up server object");
    System.out.println("Server started.");
    System.out.println("Enter <CR> to end.");
    try {
         int serve2end = System.in.read();
    }catch (IOException ioException) {
    System.exit(0);
    //endoffilePlease advise as this is very urgent

    Hi
    the following is the code for PostOfficeImpl...its a long code but i include it so that I get your help please...
    import java.io.*;
    import java.net.*;
    import java.lang.*;
    import java.rmi.*;
    import java.rmi.server.*;
    import java.rmi.RemoteException;
    import java.util.HashMap;
    import java.util.*;
    public class PostOfficeImpl extends java.rmi.server.UnicastRemoteObject implements PostOffice {
    //Implementations must have an explicit constructor in order to declare the
    //RemoteException exception
    public PostOfficeImpl() throws java.rmi.RemoteException {
         super();
    public static LinkedListImpl list = new LinkedListImpl();
    public static oListImpl ovarList  = new oListImpl();
    public static iListImpl ivarList =new iListImpl();
    public static lipsList llfirst;
    public static oList opchannel, ofirst, onext;
    public static iList ipchannel, ichan, ifirst;
    public static  String[] variNumber= new String[100];
    public static String[] inoutChan, inChan, outChan,inVAR, invarLIST,outVAR, outvarLIST ;
    public static String[][] driveMat;
    DriverMatrix_mthds drive = new DriverMatrix_mthds();
    private static  Boolean All_Vacant;
    private static  Boolean tAll_Vacant;
    public void sendAll_Vacant(Boolean All_Vacant) throws RemoteException {
         tAll_Vacant = All_Vacant;
    public Boolean getAll_Vacant() throws RemoteException{
          return tAll_Vacant;
    public  void initDatastructure() throws RemoteException{
    ifirst = null;
    ofirst=null;
    int i=0, j=0, k=0, ind1=0, ind2=0;
    try{/// initialise list
         drive = new DriverMatrix_mthds();
         drive.VarTypeArray();
         drive.nodeHeadVarType();
         String[] variablel = drive.Variablelist();
         drive.lipsvariablist();
         drive.NodeOrigin();
    drive.nodeInput();
         drive.numOfnodes();
         drive.noOfVariables();
         drive.Assignlist();
         drive.novarType();
         drive.varNameType();
         drive.nodeNumName();
         drive.driverMat();
         String[][] lookupvar = drive.varNameType();
         //tempdrive = drive.driverMat();
         long leng1 = variablel.length;
         int varlistlength = (int) leng1;
         int counter;
         String s1="";
         String s2="";
         String s3 = "";
         String s4 = "";
         String s6 = "";
         int s5=0, c=0;
         while(variablel[k] !=null){
              k=k+1;
         int i1, j1;
         String  varname, varnumber;
         varnumber = "";
    while(i<=variablel.length-1){
         if(variablel!=null){
         c=c+1;
         i=i+1;
    try{
         ind1=0; ind2 = 0;i=0;
    while(!(variablel[i].equals("end of file"))){
         s1 = variablel[i];
         i=i+1;
         s2 = variablel[i];
         i=i+1;
         System.out.println("     " + s1+"     "+s2);
    while(!(variablel[i].equals("end of input variable"))){
         s4 = variablel[i];
         i1=0;
         Brkwhile:while(i1<=lookupvar.length-1){
         j1=1;
         if(lookupvar[i1][j1] != null){
         if(lookupvar[i1][j1].equals(s4)){
              s3 = lookupvar[i1][0];
              break Brkwhile;
         i1=i1+1;
    //ifirst.varNum = varnumber;
    s5 = 0;
    s6 = null;
    ifirst= new iList(s3,s4, s5, s6);
    ivarList.add(ifirst);
    System.out.println(s3+"     "+s4+"     "+s5+"     "+s6);
    i=i+1;
    i = i + 1;
    System.out.println("input list finished ");
    while(!(variablel[i].equals("end of output variable"))){
         s4 = variablel[i];
         i1=0;
         j1=1;
         Brkwhile:while(lookupvar[i1][j1] != null){
              if(lookupvar[i1][j1].equals(s4)){
              s3 = lookupvar[i1][0];
              break Brkwhile;
         i1=i1+1;
         s5 = 0;
         s6 = null;
         ofirst= new oList(s3,s4, s5, s6);
         ovarList.add(ofirst);
         System.out.println(s3+"     "+s4+"     "+s5+"     "+s6);
         i=i+1;
         llfirst = new lipsList(s1, s2, ivarList, ovarList);
         list.add(llfirst);
         System.out.println("output list finished ");
         i=i+1;
         catch (NullPointerException ne){
         catch (Exception d){}
    public int isitOK(reqPacket sndNodetail)
         throws RemoteException{
         String nodnum = sndNodetail.srcNum;
         String varnum = sndNodetail.varNum;
         int status = 0;
         llfirst = list.getFirst();
         try{mainbegin:while (llfirst != null){
              if((llfirst.nodeNum).equals(nodnum)){
              ofirst = ovarList.getFirst();
              while(ofirst != null){
                   if((ofirst.varNum).equals(varnum)){
                   if(ofirst.varVal==null){
                   status = 1;
                   break mainbegin;
         ofirst = ofirst.next;
         llfirst = llfirst.next;
         catch (NullPointerException nl){}
         return status;
    public int senData(dataPacket sendToRTS)
         throws RemoteException{
    dataPacket datDetail = sendToRTS;
    String nnum, vnum,typename, dval;
    String dtype = "";
    nnum = datDetail.nodeNum;
    vnum = datDetail.varNum;
    typename = datDetail.dataType;
    dval = String.valueOf(datDetail.dataVal);
    String [][] tempdrive, varnametype;
    int status =0;
    System.out.println("data received is from node " nnum " is "+ dval+"var num " +vnum);
    status =0;
    try{
    //DriverMatrix_mthds drive = new DriverMatrix_mthds();
    drive.VarTypeArray();
    drive.Variablelist();
    drive.NodeOrigin();
    drive.nodeInput();
    drive.numOfnodes();
    drive.noOfVariables();
    String[][] lookupvar = drive.novarType();
    drive.varNameType();
    drive.nodeNumName();
    drive.driverMat();
    tempdrive = drive.driverMat();
    String varname="";
    int i,j;
    //with the recived var name get the var num
    for(i=0; i<=lookupvar.length-1; i++){
         j=0;
         if(lookupvar[i][j] != null){
              if(lookupvar[i][j].equals(typename)){
                   dtype = lookupvar[i][1];
         }//varname is moved to dtype n used for checking
         for(i=0; i<=tempdrive.length-1; i++){j=0;
         if (tempdrive[i][j] != null){
         if (tempdrive[i][0].equals(vnum)){
              if (tempdrive[i][1].equals(nnum)){
              if(tempdrive[i][2].equals(dtype)){
              status = 1;
         }//System.out.println("received data " vnum " "+ nnum +" " + dtype +" "+dval);// after checking status if the status is 1 then set the counter n olist// to no of times the value has to be ditributed
    int Ccount =0;
    //opchannel = llfirst.olist;
    try{
         System.out.println("status"+status);
         if (status == 1){
              llfirst = list.getFirst();
         mainWhile: while (llfirst != null){
              if((llfirst.nodeNum).equals(nnum)){
                   ofirst = ovarList.getFirst();
                   while(ofirst != null){
                   if((ofirst.varNum).equals(vnum)){
                        ofirst.varVal =dval;
                        //setting the counter for the varname
                        //check driver matrix fr the no of occurances
                   for(i=0; i<=tempdrive.length-1; i++){
                   j=0;
                   if (tempdrive[i][j] != null){
                        if (tempdrive[i][0].equals(vnum)){
                        for(j= j+3;j<=tempdrive.length-1;j++){
                        if(tempdrive[i][j] != null){
                        if(tempdrive[i][j].equals("1")){
                        Ccount = Ccount + 1;
    System.out.println("count"+Ccount);
    ofirst.counter = Ccount;
    ofirst.varNum = vnum;for(i=0; i<=lookupvar.length-1; i++){
    for(j=0; j<=2; j++){
         if(lookupvar[i][j] != null){
         if(lookupvar[i][j].equals(vnum)){
              varname = lookupvar[i][1];
         ofirst.varName = varname;
         Ccount=0;
         break mainWhile;
         ofirst = ofirst.next;
         llfirst = llfirst.next;
         catch(NullPointerException s){}
    /*use the vnum in the driver matrix and find out the nodes to which this variable
    *has been sent as input , i mean destination nodes..
    *find the node numbers ..knowing the node numbers parse through data structure
    and set the input values to value and status 1./
    llfirst = list.getFirst();
    while(llfirst != null){
         ifirst = llfirst.ilist.getFirst();
         while(ifirst != null){
              if (ifirst.varNum.equals(vnum)){
              ifirst.varStat = 1;
              ifirst.varVal = dval;
              //     System.out.println("nodenum "+llfirst.nodeNum+" varval     " + ifirst.varVal +"     stat "+ifirst.varStat+" vnum " + ifirst.varNum);
         ifirst=ifirst.next;
         llfirst=llfirst.next;
         catch (Exception e){};
         return status;
    public int isinputAvail(reqPacket inputReq)
         throws RemoteException{
         String srcnum = inputReq.srcNum;
         String varnum = inputReq.varNum;
         int availstatus =0;
         llfirst = list.getFirst();
         //System.out.println("llfirst.nodeNum     "+ llfirst.nodeNum);
         whileloop:while (llfirst != null){
              if((llfirst.nodeNum).equals(srcnum)){
              ifirst = llfirst.ilist.getFirst();
              breakloop: while(ifirst != null){
              //System.out.println("var num " + varnum + "     " + "status outside" + ifirst.varStat);
              if((ifirst.varNum).equals(varnum)){
              if (ifirst.varStat == 1){
                   availstatus = 1;
                   ifirst.varStat = 0;
                   // System.out.println("var num " + varnum + "     " + "status" + availstatus);
                   break whileloop;
         ifirst = ifirst.next;
         llfirst = llfirst.next;
         //System.out.println("var num " + varnum + "     " + "status" + availstatus);
         return availstatus;
    public dataPacket senDatatoNode(reqPacket sendFromRTS)
         throws RemoteException {
         String nnum, vnum, dtype, dval;
         //nnum = "";
         dtype="";
         //opchannel = llfirst.olist;
         //     ipchannel = llfirst.ilist;
         reqPacket sendfromrts = sendFromRTS;
         nnum = sendfromrts.srcNum;
         vnum = sendfromrts.varNum;
         //     dtype = sendFromRTS.dataType;
         dval = "";
         int ctrchk=0;
         try{
         //send data to process node n reduce the counter by 1
         llfirst = list.getFirst();
              mainWhile: while (llfirst != null){
              if((llfirst.nodeNum).equals(nnum)){
              ofirst = llfirst.olist.getFirst();
         whileofirst: while(ofirst != null){
              if((ofirst.varNum).equals(vnum)){
              dval = ofirst.varVal;
              ofirst.counter = ofirst.counter - 1;
              //     System.out.println(ofirst.counter);
              ctrchk=ofirst.counter;
              break whileofirst;
         ofirst = ofirst.next;
    //set the status of respective input channel to 0 as data has been sent
         ifirst = llfirst.ilist.getFirst();
         if(ctrchk == 0){
         whileifirst: while(ifirst != null){
              if((ifirst.varNum).equals(vnum)){
              //ifirst.varVal = dval;
              ifirst.varStat =0;
              break whileifirst;
         llfirst = llfirst.next;
         //System.out.println(llfirst);
         catch(NullPointerException s){}
    //find type
    try{
         DriverMatrix_mthds driver = new DriverMatrix_mthds();
         driver.VarTypeArray();
         driver.Variablelist();
         driver.NodeOrigin();
         driver.nodeInput();
         driver.numOfnodes();
         driver.noOfVariables();
         driver.novarType()     ;
         String[][] lookupvar = driver.varNameType();
         int i, j;
         String varNum = vnum;
         for(i=0; i<=lookupvar.length-1; i++){
              j=0;
              if(lookupvar[i][j] != null){
              if(lookupvar[i][j].equals(vnum)){
              dtype = lookupvar[i][2];
         catch (Exception d){}
         dataPacket retpac = new dataPacket(nnum, vnum, dtype, dval);
         System.out.println("msg sent "+ nnum +"     " + vnum+" "+ dtype+"     "+ dval);
         return retpac;
    public String findnodeName(String nodeNum)
         throws RemoteException{
    String nnum = nodeNum;
    llfirst = list.getFirst();
    while (llfirst != null){
         if((llfirst.nodeNum).equals(nnum)){
         return llfirst.nodeName;
         llfirst = llfirst.next;
         System.out.println("node Number does not match with the list of node numbers generated..try again");
         return null;
    //find the nodenum given the node name
    public String findnodenum(String nodename)
         throws RemoteException{
         String nodenumber ="";
         String nodname = nodename;
         try{DriverMatrix_mthds driver = new DriverMatrix_mthds();
         driver.VarTypeArray();
         driver.Variablelist();
         driver.NodeOrigin();
         driver.nodeInput();
         driver.numOfnodes();
         driver.noOfVariables();
         driver.novarType()     ;
         driver.varNameType();
         String[][] lookupnode = driver.nodeNumName();
         int i, j;
         for(i=0; i<=lookupnode.length-1; i++){
         for(j=0; j<=2; j++){
              if(lookupnode[i][j] != null){
              if(lookupnode[i][j].equals(nodname)){
                   nodenumber = lookupnode[i][2];
         catch (Exception d){}
         return nodenumber;
    public String findvarnum(String variablename)
         throws RemoteException{
         String varnumber = "";
         try{
         DriverMatrix_mthds driver = new DriverMatrix_mthds();
         driver.VarTypeArray();
         driver.Variablelist();
         driver.NodeOrigin();
         driver.nodeInput();
         driver.numOfnodes();
         driver.noOfVariables();
         driver.novarType()     ;
         String[][] lookupvar = driver.varNameType();
         int i, j;
         String varname = variablename;
         for(i=0; i<=lookupvar.length-1; i++){
         for(j=0; j<=2; j++){
              if(lookupvar[i][j] != null){
              if(lookupvar[i][j].equals(varname)){
                   varnumber = lookupvar[i][0];
    catch (Exception d){}
    return varnumber;
    public String findvartype(String varname)
         throws RemoteException{
         String vartype = "";
         try{
         DriverMatrix_mthds driver = new DriverMatrix_mthds();
         driver.VarTypeArray();
         driver.Variablelist();
         driver.NodeOrigin();
         driver.nodeInput();
         driver.numOfnodes();
         driver.noOfVariables();
         driver.novarType();
         String[][] lookupvar = driver.varNameType();
         int i, j;
         String varName = varname;
         for(i=0; i<=lookupvar.length-1; i++){
         for(j=0; j<=2; j++){
              if(lookupvar[i][j] != null){
              if(lookupvar[i][j].equals(varName)){
                   vartype = lookupvar[i][2];
    catch (Exception d){}
    return vartype;
    public String findtypenum(String vartype){
    String varnum = "";int i;
    try{
         DriverMatrix_mthds driver = new DriverMatrix_mthds();
         driver.VarTypeArray();
         driver.Variablelist();
         driver.NodeOrigin();
         driver.nodeInput();
         driver.numOfnodes();
         driver.noOfVariables();
         String varNum[][] =      driver.novarType()     ;
         String varType = vartype;
         for(i=0; i<=9-1; i++){
              if(varNum[i][0] != null){
              if(varNum[i][0].equals(varType)){
                   varnum = varNum[i][1];
    catch (Exception d){}
    return vartype;
    //return input variable list
    public String[] inoutchanlist(String nodenum, String nodenam)
         throws RemoteException{
    try{
         DriverMatrix_mthds drive = new DriverMatrix_mthds();
         String[] varLIST = drive.Variablelist();
         int i=0;int j;
         while(varLIST[i]!=null){
              i=i+1;
         int arrlength = i;
         inoutChan = new String[arrlength];
         i=0; j=0;
         WHILELOOP:
         while(!(varLIST[i].equals("end of file"))){
         while(varLIST[i].equals(nodenum)){
              i=i+1;
              while(varLIST[i].equals(nodenam)){
                   i=i+1;
                   while(!(varLIST[i].equals("end of input variable"))){
                        inoutChan[j] = varLIST[i];
                        i=i+1;
                        j=j+1;
              System.out.println("endofinput");
              inoutChan[j]="endofinchan";
              j=j+1;
              i=i+1;
              while(!(varLIST[i].equals("end of output variable"))){
         inoutChan[j] = varLIST[i];
         i=i+1;
         j=j+1;
         System.out.println("endofoutput");
         inoutChan[j]="endofoutchan";
         break WHILELOOP;
         i=i+1;
         arrlength =j;
         for(j=0; j<=arrlength-1; j++){
         System.out.println(inoutChan[j]);
         catch (Exception e){}
         return inoutChan;
    public String[] inchannel(String[] inoutChan) throws RemoteException{
    int count=0;int i=0, j=0;
    System.out.println("entered");
    while(inoutChan[count]!=null){
         System.out.println(count + " " +inoutChan[count]);
         count=count+1;
         inChan = new String[count];
         while(!(inoutChan[i].equals("endofinchan"))){
         inChan[j] =inoutChan[i];
         j=j+1; i=i+1;
    return inChan;
    public String[] outchannel(String[] inoutChan) throws RemoteException{
    int count=0;int i=0, j=0;
    System.out.println("entered");
    while(inoutChan[count]!=null){
         System.out.println(count + " " +inoutChan[count]);
         count=count+1;
         outChan = new String[count+1];
         while(!(inoutChan[i].equals("endofinchan"))){
              i=i+1;
         i=i+1;
         while(!(inoutChan[i].equals("endofoutchan"))){
              outChan[j] =inoutChan[i];
              j=j+1; i=i+1;
         return outChan;
    public String[] invarChan(String nodename, int guardno)throws RemoteException{
    try{
    DriverMatrix_mthds drive = new DriverMatrix_mthds();
    invarLIST = drive.invarlist();
    int i=0;int j;
    while(invarLIST[i]!=null){
         i=i+1;
         int arrlength = i;
         inVAR = new String[arrlength];
         i=0; j=0;
              WHILELOOP: while(!(invarLIST[i].equals("end of file"))){
                   if (invarLIST[i].equals(nodename)){
         i=i+1;
         while(!(invarLIST[i].equals(nodename+String.valueOf(guardno)))){
         i=i+1;}
         i=i+1;
         while(!(invarLIST[i].equals("endofguard"))){
         System.out.println(invarLIST[i]);inVAR[j]=invarLIST[i]; i=i+1; j=j+1;}
         break WHILELOOP;}
         i=i+1;}
    }catch (Exception d){}
    return inVAR;
    public String[] outvarChan(String nodename, int guardcount)throws RemoteException{
         try{
         DriverMatrix_mthds drive = new DriverMatrix_mthds();
         outvarLIST = drive.outvarlist();
         int i=0;int j;
         while(outvarLIST[i]!=null){
              i=i+1;
         int arrlength = i;
         outVAR = new String[arrlength];
         i=0; j=0;
         WHILELOOP: while(!(outvarLIST[i].equals("end of file"))){
              if (outvarLIST[i].equals(nodename)){
                   i=i+1;
                   while(!(outvarLIST[i].equals(nodename+String.valueOf(guardcount)+"guard"))){
                        i=i+1;}
              i=i+1;
              while(!(outvarLIST[i].equals("end guard"))){
              System.out.println(outvarLIST[i]);outVAR[j]=outvarLIST[i]; i=i+1; j=j+1;}
              break WHILELOOP;}
         i=i+1;}
    }catch (Exception d){}
    return outVAR;
    private static Boolean start;
    private static Boolean tstart;
    public void sendstart(Boolean start) throws RemoteException {
         tstart = start;
    public Boolean getstart() throws RemoteException{
         return tstart;
    private static Boolean done;
    private static Boolean tdone;
    public void senddone(Boolean done) throws RemoteException {
         tdone = done;
    public Boolean getdone() throws RemoteException{
         return tdone;
    private static Boolean vac_busy1;
    private static Boolean tvac_busy1;
    public void sendvac_busy1(Boolean vac_busy1) throws RemoteException {
         tvac_busy1 = vac_busy1;
    public Boolean getvac_busy1() throws RemoteException{
         return tvac_busy1;
    private static int cus1_rit1;
    private static int tcus1_rit1;
    public void sendcus1_rit1(int cus1_rit1) throws RemoteException {
         tcus1_rit1 = cus1_rit1;
    public int getcus1_rit1() throws RemoteException{
         return tcus1_rit1;
    private static int cus1_rit2;
    private static int tcus1_rit2;
    public void sendcus1_rit2(int cus1_rit2) throws RemoteException {
         tcus1_rit2 = cus1_rit2;
    public int getcus1_rit2() throws RemoteException{
         return tcus1_rit2;
    private static int cus1_rit3;
    private static int tcus1_rit3;
    public void sendcus1_rit3(int cus1_rit3) throws RemoteException {
         tcus1_rit3 = cus1_rit3;
    public int getcus1_rit3() throws RemoteException{
         return tcus1_rit3;
    private static int cus1_it1;
    private static int tcus1_it1;
    public void sendcus1_it1(int cus1_it1) throws RemoteException {
         tcus1_it1 = cus1_it1;
    public int getcus1_it1() throws RemoteException{
         return tcus1_it1;
    private static int cus1_it2;
    private static int tcus1_it2;
    public void sendcus1_it2(int cus1_it2) throws RemoteException {
         tcus1_it2 = cus1_it2;
    public int getcus1_it2() throws RemoteException{
         return tcus1_it2;
    private static int cus1_it3;
    private static int tcus1_it3;
    public void sendcus1_it3(int cus1_it3) throws RemoteException {
         tcus1_it3 = cus1_it3;
    public int getcus1_it3() throws RemoteException{
         return tcus1_it3;
    private static int stkit_11;
    private static int tstkit_11;
    public void sendstkit_11(int stkit_11) throws RemoteException {
         tstkit_11 = stkit_11;
    public int getstkit_11() throws RemoteException{
         return tstkit_11;
    private static int stkit_12;
    private static int tstkit_12;
    public void sendstkit_12(int stkit_12) throws RemoteException {
         tstkit_12 = stkit_12;
    public int getstkit_12() throws RemoteException{
         return tstkit_12;
    private static int stkit_13;
    private static int tstkit_13;
    public void sendstkit_13(int stkit_13) throws RemoteException {
         tstkit_13 = stkit_13;
    public int getstkit_13() throws RemoteException{
         return tstkit_13;
    private static int c1_it1;
    private static int tc1_it1;
    public void sendc1_it1(int c1_it1) throws RemoteException {
         tc1_it1 = c1_it1;
    public int getc1_it1() throws RemoteException{
         return tc1_it1;
    private static int c1_it2;
    private static int tc1_it2;
    public void sendc1_it2(int c1_it2) throws RemoteException {
         tc1_it2 = c1_it2;
    public int getc1_it2() throws RemoteException{
         return tc1_it2;
    private static int c1_it3;
    private static int tc1_it3;
    public void sendc1_it3(int c1_it3) throws RemoteException {
         tc1_it3 = c1_it3;
    public int getc1_it3() throws RemoteException{
         return tc1_it3;
    //endoffile

Maybe you are looking for