JDBC channel with encryption

Dear experts,
I have a requirement to update a database in a SQL Server 2008 from a PI 7.0. The communication must be encrypted. I have found this article explaining how to do for an Oracle database:
Link:http://wiki.sdn.sap.com/wiki/display/XI/EncryptioninscenariosinvolvingJDBCAdapterwithOracleDatabase
I have already searched SAP notes and in the Microsoft portals, but I haven't found the parameters needed that I need. Has anybody ever created a JDBC channel to a SQL Server 2008 with encryption? Any guide of what I need?
Thanks.

Can you try with the below URL.
String connectionUrl =
    "jdbc:sqlserver://localhost:1433;" +
     "databaseName=AdventureWorks;integratedSecurity=true;" +
     "encrypt=true;trustServerCertificate=true";
http://msdn.microsoft.com/en-us/library/bb879949.aspx

Similar Messages

  • One communication channel with 2 cluster node functioning at the same time

    Hi Gurus,
    We have PI 7.1 installed in a HA environment, which includes  two servers.
    server A: ASCSSCSDBERSAAS
    server B: ERS + PAS
    and we can see a jdbc channel in the communication channel monitoring, and along with the CC there are two cluster ID available,both of which are showing green -- functioning.
    now the issue is the process is actually not started because there is no processing details, and  when we stop the CC and then start, nothing happens, but there are still 2 green nights, seems very strange.
    does any one have such experience and how can make these two nodes work well?
    Thanks.

    Probably they use an older version of alsa that doesn't have dmix enabled by default.
    Have a read through: http://gentoo-wiki.com/HOWTO_ALSA_Compl … ix%29#dmix
    Perhaps it will help.

  • Problem in using socket streams with encryption and decryption

    Hi,
    I am developing a client/server program with encryption and decryption at both end. While sending a message from client it should be encrypted and at the receiving end(server) it should be decrypted and vice versa.
    But while doing so i got a problem if i use both encryption and decryption at both ends. But If i use only encryption at one (only outputstream) and decryption at other end(only inputstream) there is no problem.
    Here is client/server pair of programs in which i am encrypting the outputstream of the socket in client side and decrypting the inputstream of the socket in server side.
    serverSocketDemo.java
    import java.io.*;
    import java.net.*;
    import java.security.*;
    import java.security.spec.*;
    import javax.crypto.*;
    import javax.crypto.spec.*;
    import java.util.*;
    import java.util.zip.*;
    class serverSocketDemo
         public static void main(String args[])
              try
              {                    //server listening on port 2000
                   ServerSocket server=new ServerSocket(2000);
                   while (true)
                        Socket theConnection=server.accept();
                        System.out.println("Connecting from local address : "+theConnection.getLocalAddress());
                        System.out.println("Connection request from : "+theConnection.getInetAddress());
                        //Input starts from here
                        Reader in=new InputStreamReader(getNetInStream(theConnection.getInputStream()),"ASCII");
                        StringBuffer strbuf=new StringBuffer();
                        int c;
                        while (true)
                             c=in.read();
                             if(c=='\n' || c==-1)
                                  break;
                             strbuf.append((char)c);     
                        String str=strbuf.toString();
                        System.out.println("Message from Client : "+str);
                        in.close();               
                        theConnection.close();
              catch(BindException e)
                   System.out.println("The Port is in use or u have no privilage on this port");
              catch(ConnectException e)
                   System.out.println("Connection is refused at remote host because the host is busy or no process is listening on that port");
              catch(IOException e)
                   System.out.println("Connection disconnected");          
              catch(Exception e)
         public static BufferedInputStream getNetInStream(InputStream in) throws Exception
              // register the provider that implements the algorithm
              Provider sunJce = new com.sun.crypto.provider.SunJCE( );
              Security.addProvider(sunJce);
              // create a key
              byte[] desKeyDataDec = "This encryption can not be decrypted".getBytes();
              DESKeySpec desKeySpecDec = new DESKeySpec(desKeyDataDec);
              SecretKeyFactory keyFactoryDec = SecretKeyFactory.getInstance("DES");
              SecretKey desKeyDec = keyFactoryDec.generateSecret(desKeySpecDec);
              // use Data Encryption Standard
              Cipher desDec = Cipher.getInstance("DES");
              desDec.init(Cipher.DECRYPT_MODE, desKeyDec);
              CipherInputStream cin = new CipherInputStream(in, desDec);
              BufferedInputStream bin=new BufferedInputStream(new GZIPInputStream(cin));
              return bin;
    clientSocketDemo.java
    import java.io.*;
    import java.net.*;
    import java.security.*;
    import java.security.spec.*;
    import javax.crypto.*;
    import javax.crypto.spec.*;
    import java.util.*;
    import java.util.zip.*;
    class clientSocketDemo
         public static void main(String args[])
              try
                   Socket theConnection=new Socket("localhost",2000);
                   System.out.println("Connecting from local address : "+theConnection.getLocalAddress());
                   System.out.println("Connecting to : "+theConnection.getInetAddress());
                   //Output starts from here               
                   OutputStream out=getNetOutStream(theConnection.getOutputStream());
                   out.write("Please Welcome me\n".getBytes());
                   out.flush();
                   out.close();
                   theConnection.close();
              catch(BindException e)
                   System.out.println("The Port is in use or u have no privilage on this port");
              catch(ConnectException e)
                   System.out.println("Connection is refused at remote host because the host is busy or no process is listening on that port");
              catch(IOException e)
                   System.out.println("Connection disconnected");          
              catch(Exception e)
         public static OutputStream getNetOutStream(OutputStream out) throws Exception
              // register the provider that implements the algorithm
              Provider sunJce = new com.sun.crypto.provider.SunJCE( );
              Security.addProvider(sunJce);
              // create a key
              byte[] desKeyDataEnc = "This encryption can not be decrypted".getBytes();
              DESKeySpec desKeySpecEnc = new DESKeySpec(desKeyDataEnc);
              SecretKeyFactory keyFactoryEnc = SecretKeyFactory.getInstance("DES");
              SecretKey desKeyEnc = keyFactoryEnc.generateSecret(desKeySpecEnc);
              // use Data Encryption Standard
              Cipher desEnc = Cipher.getInstance("DES");
              desEnc.init(Cipher.ENCRYPT_MODE, desKeyEnc);
              CipherOutputStream cout = new CipherOutputStream(out, desEnc);
              OutputStream outstream=new BufferedOutputStream(new GZIPOutputStream(cout));
              return outstream;
    Here is client/server pair in which i use both encrypting outpustream and decrypting inputstream at both ends.
    serverSocketDemo.java
    import java.io.*;
    import java.net.*;
    import java.security.*;
    import java.security.spec.*;
    import javax.crypto.*;
    import javax.crypto.spec.*;
    import java.util.*;
    import java.util.zip.*;
    class serverSocketDemo
         private Cipher desEnc,desDec;
         serverSocketDemo()
              try
                   // register the provider that implements the algorithm
                   Provider sunJce = new com.sun.crypto.provider.SunJCE( );
                   Security.addProvider(sunJce);
                   // create a key
                   byte[] desKeyData = "This encryption can not be decrypted".getBytes();
                   DESKeySpec desKeySpec = new DESKeySpec(desKeyData);
                   SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
                   SecretKey desKey = keyFactory.generateSecret(desKeySpec);
                   desEnc = Cipher.getInstance("DES");
                   desEnc.init(Cipher.ENCRYPT_MODE, desKey);
                   desDec = Cipher.getInstance("DES");
                   desDec.init(Cipher.DECRYPT_MODE, desKey);               
              catch (javax.crypto.NoSuchPaddingException e)
                   System.out.println(e);          
              catch (java.security.NoSuchAlgorithmException e)
                   System.out.println(e);          
              catch (java.security.InvalidKeyException e)
                   System.out.println(e);          
              catch(Exception e)
                   System.out.println(e);
              startProcess();
         public void startProcess()
              try
                   ServerSocket server=new ServerSocket(2000);
                   while (true)
                        final Socket theConnection=server.accept();
                        System.out.println("Connecting from local address : "+theConnection.getLocalAddress());
                        System.out.println("Connection request from : "+theConnection.getInetAddress());
                        Thread input=new Thread()
                             public void run()
                                  try
                                       //Input starts from here
                                       Reader in=new InputStreamReader(new BufferedInputStream(new CipherInputStream(theConnection.getInputStream(), desDec)),"ASCII");
                                       StringBuffer strbuf=new StringBuffer();
                                       int c;
                                       while (true)
                                            c=in.read();
                                            if(c=='\n'|| c==-1)
                                                 break;
                                            strbuf.append((char)c);     
                                       String str=strbuf.toString();
                                       System.out.println("Message from Client : "+str);
                                  catch(Exception e)
                                       System.out.println("Error caught inside input Thread : "+e);
                        input.start();
                        Thread output=new Thread()
                             public void run()
                                  try
                                       //Output starts from here
                                       OutputStream out=new BufferedOutputStream(new CipherOutputStream(theConnection.getOutputStream(), desEnc));
                                       System.out.println("it will not be printed");
                                       out.write("You are Welcome\n".getBytes());
                                       out.flush();
                                  catch(Exception e)
                                       System.out.println("Error caught inside output Thread : "+e);
                        output.start();
                        try
                             output.join();
                             input.join();
                        catch(Exception e)
                        theConnection.close();
              catch(BindException e)
                   System.out.println("The Port is in use or u have no privilage on this port");
              catch(ConnectException e)
                   System.out.println("Connection is refused at remote host because the host is busy or no process is listening on that port");
              catch(IOException e)
                   System.out.println("Connection disconnected");          
              catch(Exception e)
         public static void main(String args[])
              serverSocketDemo server=new serverSocketDemo();          
    clientSocketDemo.java
    import java.io.*;
    import java.net.*;
    import java.security.*;
    import java.security.spec.*;
    import javax.crypto.*;
    import javax.crypto.spec.*;
    import java.util.*;
    import java.util.zip.*;
    class clientSocketDemo
         private Cipher desEnc,desDec;
         clientSocketDemo()
              try
                   // register the provider that implements the algorithm
                   Provider sunJce = new com.sun.crypto.provider.SunJCE( );
                   Security.addProvider(sunJce);
                   // create a key
                   byte[] desKeyData = "This encryption can not be decrypted".getBytes();
                   DESKeySpec desKeySpec = new DESKeySpec(desKeyData);
                   SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
                   SecretKey desKey = keyFactory.generateSecret(desKeySpec);
                   desEnc = Cipher.getInstance("DES");
                   desDec = Cipher.getInstance("DES");
                   desEnc.init(Cipher.ENCRYPT_MODE, desKey);
                   desDec.init(Cipher.DECRYPT_MODE, desKey);               
              catch (javax.crypto.NoSuchPaddingException e)
                   System.out.println(e);          
              catch (java.security.NoSuchAlgorithmException e)
                   System.out.println(e);          
              catch (java.security.InvalidKeyException e)
                   System.out.println(e);          
              catch(Exception e)
                   System.out.println(e);
              startProcess();
         public void startProcess()
              try
                   final Socket theConnection=new Socket("localhost",2000);
                   System.out.println("Connecting from local address : "+theConnection.getLocalAddress());
                   System.out.println("Connecting to : "+theConnection.getInetAddress());
                   Thread output=new Thread()
                        public void run()
                             try
                                  //Output starts from here               
                                  OutputStream out=new BufferedOutputStream(new CipherOutputStream(theConnection.getOutputStream(), desEnc));
                                  out.write("Please Welcome me\n".getBytes());
                                  out.flush();
                             catch(Exception e)
                                  System.out.println("Error caught inside output thread : "+e);
                   output.start();     
                   Thread input=new Thread()
                        public void run()
                             try
                                  //Input starts from here
                                  Reader in=new InputStreamReader(new BufferedInputStream(new CipherInputStream(theConnection.getInputStream(), desDec)),"ASCII");          
                                  System.out.println("it will not be printed");
                                  StringBuffer strbuf=new StringBuffer();
                                  int c;
                                  while (true)
                                       c=in.read();
                                       if(c=='\n' || c==-1)
                                            break;
                                       strbuf.append((char)c);     
                                  String str=strbuf.toString();
                                  System.out.println("Message from Server : "+str);
                             catch(Exception e)
                                  System.out.println("Error caught inside input Thread : "+e);
                   input.start();
                   try
                        output.join();
                        input.join();
                   catch(Exception e)
                   theConnection.close();
              catch(BindException e)
                   System.out.println("The Port is in use or u have no privilage on this port");
              catch(ConnectException e)
                   System.out.println("Connection is refused at remote host because the host is busy or no process is listening on that port");
              catch(IOException e)
                   System.out.println("Connection disconnected");          
              catch(Exception e)
         public static void main(String args[])
              clientSocketDemo client=new clientSocketDemo();     
    **** I know that the CInput tries to read some header stuff thats why i used two threads for input and output.
    Waiting for the reply.
    Thank you.

    Do not ever post your code unless requested to. It is very annoying.
    Try testing what key is being used. Just to test this out, build a copy of your program and loop the input and outputs together. Have them print the data stream onto the screen or a text file. Compare the 1st Output and the 2nd Output and the 1st Input with the 2nd Input and then do a static test of the chipher with sample data (same data which was outputted), then do another cipher test with the ciphertext created by the first test.
    Everything should match - if it does not then follow the steps below.
    Case 1: IO Loops do not match
    Case 2: IO Loops match, but ciphertext 1st run does not match loop
    Case 3: IO Loops match, 1st ciphertext 1st run matches, but 2nd run does not
    Case 4: IO Loops match, both chiphertext runs do not match anything
    Case 5: Ciphertext runs do not match eachother when decrypted correctly (outside of the test program)
    Problems associated with the cases above:
    Case 1: Private Key is changing on either side (likely the sender - output channel)
    Case 2: Public Key is changing on either side (likely the sender - output channel)
    Case 3: Private Key changed on receiver - input channel
    Case 4: PKI failure, causing private key and public key mismatch only after a good combination was used
    Case 5: Same as Case 4

  • How to put Stored Procedure in Receiver JDBC channel

    Hi all,Good Evening,Iam using a JDBC to JDBC scenario in which I have to move the data from database into XI and we all know that the Interfaces which require stored procedures on Oracle database server for publishing the data needs to be called in combination of BPM & Receiver JDBC adapter.
            In this method, a dummy interface will be created for triggering the process. This interface could be designed using any adapter which works on polling mechanism (sender JDBC/File). Dummy interface will invoke a small BPM designed for each business object. BPM will make a synchronous call to Oracle database by calling underlying stored procedure. Stored procedure will return the result set by using a cursor. BPM will send this result set to target application.
            Now my question is how to put a stored procedure in a receiver JDBC channel which need to collect the data from database when BPM makes a synchronous call.
           Because it is required in my scenario,can any one tell me how and where to put stored Procedure in JDBC receiver channel.
    Thanks in advance,
    Regards,
    Prajwal

    Your action should be EXECUTE for stored procedures in Message mapping.
    <StatementName5>
    <storedProcedureName action=u201D EXECUTEu201D>
        <table>realStoredProcedureeName</table>
    <param1 [isInput=u201Dtrueu201D] [isOutput=true] type=SQLDatatype>val1</param1>
    </storedProcedureName > 
    </StatementName5>
    action=EXECUTE
    Statements with this action result in a stored procedure being executed. The name of the element is interpreted as the name of the stored procedure in the database. If you use the optional <table> element, the value specified here is used as the stored procedure name. This enables you, for example, to define stored procedure names containing non-XML-compatible characters or characters that prevent them from being used in interface definitions in the Integration Builder/PCK.  If specified, <table> must be the first element in the block within <dbTableName>.
    The elements within the stored procedure are interpreted as parameters. They can optionally have the attribute isInput=u201C1u201C (input parameter) or isOutput=u201C1u201C (output parameter) or both (INOUT parameter). If both attributes are missing, the element is interpreted as an input parameter. The parameter names must be identical to those of the stored procedure definition.
    The attribute type=<SQL-Datatype> , which describes the valid SQL data type, is mandatory for all parameter types (IN, OUT, INOUT).
    http://help.sap.com/saphelp_nw2004s/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
    /people/siva.maranani/blog/2005/05/21/jdbc-stored-procedures
    /people/sap.user72/blog/2005/10/15/jdbc-adapter-execution-mode-chained-or-unchained
    /people/luis.melgar/blog/2008/05/13/synchronous-soap-to-jdbc--end-to-end-walkthrough
    /people/sriram.vasudevan3/blog/2005/02/14/calling-stored-procs-in-maxdb-using-sap-xi

  • Problem in the receiver JDBC channel

    hi,
    I am facing some problem with the receiver JDBC channel which is trying to insert some data in ORACLE DB.  My sample input XML file is,
    <root>
    <statement>
    <table>EBILL_CUST_STATE_AGE_HDR2</table>
    <CUST_CODE>BA001</CUST_CODE>
    <CUST_ADDR>Rental Customer Name 1+Name 2street01+TEL: 0331694100
                           FAX:0331694103</CUST_ADDR>
    <CRD_LMT>1000000.00</CRD_LMT>
    <BG_AMT>1000000.00</BG_AMT>
    </statement>
    </root>
    Error stack is,
    Exception caught when executing statement for table/stored proc. 'EBILL_CUST_STATE_AGE_HDR2' (structure 'Statement_CUST_STATE_AGE_HDR2'):
    java.sql.SQLException: ORA-00917: missing comma
    Please help me in solving the issue ASAP.
    Thanks,
    Soorya

    Hi,
    It works like this
    <ROOT>
    <STATEMENT>
    <TABLENAME ACTION="INSERT">
    <TABLE>EBILL_CUST_STATE_AGE_HDR2</TABLE>
    <ACCESS>
    <CUST_CODE>BA001</CUST_CODE>
    <CUST_ADDR>Rental Customer Name 1+Name 2street01+TEL: 0331694100
    FAX:0331694103</CUST_ADDR>
    <CRD_LMT>1000000.00</CRD_LMT>
    <BG_AMT>1000000.00</BG_AMT>
    </ACCESS>
    </TABLENAME>
    </STATEMENT>
    </ROOT>
    Please refer the link.
    http://help.sap.com/erp2005_ehp_04/helpdata/EN/ae/d03341771b4c0de10000000a1550b0/frameset.htm
    Abid Mazhar

  • Errrror in sender JDBC channel  in rwb

    hi forum,
    in a JDBC to XI scenario,
    the sender JDBC channel, in rwb, shows error:
    Status: RED
    Short Log: Adapter has not provided any information for this channel
    Error information:  Exception: Channel with status unknown or Not Registered
    pls help, its in production system

    RAJ,
    these channels were always active an working fine,
    let me explain the problem in detail,
    we have three cluster nodes for XI system,
    so, in rwb, communiation channel monitoring, we can see the status of a channel corresponding to the 3 nodes seperately,
    here i can see that, for 2 nodes the channel is GREEN and working, but for one of the node, it gave the already mention error

  • JDBC - IDoc with acknowledgment

    Hello,
    I have the following requirement:
    Reading data via JDBC from a database (select query), creating an IDoc and send to SAP.
    If the IDoc was sent successfully there should be an acknowledgement written back to the database (there is a special coloumn for acknowledgements in the database,key is record ID).
    My question:
    - Is it absolutely necessary to use BPM for this scenario (I think yes, as I need to track the record ID to write back the acknowledgement?)
    - My idea was to use a send step for the IDoc with enabled acknowledgments (system or application ??). In case of positive acknowledgement I would update the database in the next step (How do you check the acknowledgment returned from the SAP system, do I need a separate asynchronous receive step to get the ALEAUDIT back?)
    Thank you very much for your advice on this!

    Is it absolutely necessary to use BPM for this scenario (I think yes, as I need to track the record ID to write back the acknowledgement?)
    i think the key of question is either transport ack or application ack?
    if you just need transport ack,actually,you do not have to use bpm!
    >My idea was to use a send step for the IDoc with enabled acknowledgments (system or application ??).
    apparently,you need it which is application ack,otherwise,whereis your purpose?
    >How do you check the acknowledgment returned from the SAP system, do I need a separate asynchronous receive step to get the ALEAUDIT back?)
    For the inbound IDoc adapter to be able to send an acknowledgment IDoc to the sender, a communication channel with the interface ALEAUD.ALEAUD01 must be maintained for the sender,that is your intergration process.

  • Retreiving data from 2 tables using a sender JDBC Channel

    Hi all,
    We got anew requirement where we have to select data from 2 tables and update fields in 2 tables at the sametime.
    I have a few queries regarding this.
    Can we retrieve data from 2 tables using select query in sender JDBC channel?
    If yes, how we can achieve this?
    Can we use inner/outer joins in the select query?
    Can we update field of 2 tables using the Update query in Sender JDBC channel?
    Your help is greatly rewarded.
    With Regards
    Sudha.

    Hi,
    Even i have the same requirement where data has to be read from 2 tables and later update the falg once done .
    SELECT query :
    SELECT t1.KUNNR,t1.SETT_KEY,t1.QUART_START,t1.QUART_END,t2.PAY_METH,t2.MAT_NDC,t2.AMOUNT   FROM TSAP_REBATE_MEDI t1  INNER JOIN  TSAP_REBATE_LINE t2  ON  t1.KUNNR=t2.KUNNR AND t1.SETT_KEY=t2.SETT_KEY  WHERE  t1.PROCESSING_STATUS = 'N' AND t2.PROCESSING_STATUS = 'N'
    This is working fine.
    Can somebody help me with update query with this. where flag PROCESSING_STATUS has to be updated with 'P'.
    I tried a lot but couldnt get the answer
    Br,
    Manoj

  • Cisco TrustSec Fibre Channel Link Encryption performance?

    Hello,
    could anybody provide me some more details about Cisco TrustSec Fibre Channel Link Encryption? We are thinking to invest in this feature. Can I really use all 32 FC Ports @ 8Gbit wire speed on the 3Gen Cards? Have somebody used this feature already?
    Many Thanks in advanced!
    gk

    In my experience the auto connect never works properly with certain vendor products. Try hard setting your link speed, i.e. 2G or 4G depending on your HBA capabilities and the target device.

  • Lower number of JDBC channels strategy

    Hello Experts,
    I have been asked to optimize this scenario:
    There are 15 databases from which master data and sales data is queried and uploaded to BW using asynchronous interfaces with daily scheduled JDBC sender adapters. The original developers decided to segment the queries for each type of master data into 11 separate queries according to certain parameters, mainly to facilitate mappings to enrich the data.  There is a restriction: We cannot use stored procedures in the database, so the solution must be implemented using SQL Queries only.
    As a result we have 15 databases x 10 master data objects x 11 subdivisions: 1650 different JDBC channels, plus some other channels for sales data. And there is one set of the repository objects necessary for each of those channels. So you can imagine the level of redundancy in the repository too.
    What would be the best strategy to reduce the number of JDBCchannels (and possibly repo objects)?
    Is there a way to implement some kind of dynamic or intelligent query?
    Thanks in advance for your kind responses!
    -Sam.

    Hi Sam,
    Since your landscape got 15 different database there will be minimum 15 JDBC communication channel as the parameters are different from each other.
    The perferfect design will be a
    JDBC (asyn- for triggering) > BPM> JDBC (syn - to get the required data from other DB)> Transformation (if required)> ABAP proxy ( syn to upload Master Data into SAP , here you can logically separate the backend transcations using different Blocks) ---> Send back the status to client(use JDBC asyn channel)
    Regards,
    Sunil.

  • Powershell script monitor with encrypted password

    I have created a powershell script based monitor in my management pack and everything is ok but I can't get my credentials work inside the script. I want to open pssession to another computer with my credentials. I have triple checked that my pssession is
    working because I can access it from powershell console.
    This works perfectly at local server from PSconsole:
    $EncryptedPassword ="01000000d08c9ddf0115d1118c7a00c04fc297eb01000000534b2....etc...etc..."
    $pw = convertto-securestring -String $EncryptedPassword
    $cred = new-object System.Management.Automation.PSCredential -argumentlist "MyDOMAIN\MyACCOUNT",$pw
    $s = New-PSSession -ComputerName "MyServer" -Port MyPort -Credential $cred
    But when I run the same lines inside my management pack the convertto-securestring
    does nothing, it just wont convert the encrypted password to secure string!
    I have tried this plain text method and it works
    inside my management pack, but I don't want to use it because you can see the password in plain text:
    ConvertTo-SecureString -String "myPlainTextPassword" -AsPlainText -Force
    This is the $error variable, so it's basically says that I don't have anything in the password secure string variable because the convertion did not work for some reason:
    The argument is null. Provide a valid value for the argument, and then try running the command again. Cannot process argument transformation on parameter 'Credential'. PromptForCredential Exception calling ".ctor" with "2" argument(s):
    "Cannot process argument because the value of argument "password" is null. Change the value of argument "password" to a non-null value." The system cannot find the file specified. Exception calling "SecureStringToBSTR"
    with "1" argument(s): "Value cannot be null. Parameter name: s" The system cannot find the file specified. Exception calling "SecureStringToBSTR" with "1" argument(s): "Value cannot be null. Parameter name: s"
    The system cannot find the file specified. 
    So is there some known issue with SCOM Agent / management pack when you are dealing with convertto-securestring
    function with encrypted passwords?
    I used these methods to encrypt the password: Technet article about encryption

    I got it to work!
      <TypeDefinitions>
        <EntityTypes>
          <ClassTypes>
            <ClassType ID="MyClass" Accessibility="Public" Abstract="false" Base="Windows!Microsoft.Windows.LocalApplication" Hosted="true" Singleton="false" Extension="false"
    />
          </ClassTypes>
        </EntityTypes>
        <SecureReferences>
          <SecureReference ID="MyRunAsAccountProfile" Accessibility="Public" Context="System!System.Entity" />
        </SecureReferences>
    <ScriptBody>param (
      [string]$Username,
      [string]$Password
    $API = new-object -comObject "MOM.ScriptAPI" 
    $PropertyBag = $API.CreatePropertyBag()
    $cred = New-Object System.Management.Automation.PSCredential -Argumentlist @($Username,(ConvertTo-SecureString -String $Password -AsPlainText -Force))
    $s = New-PSSession -ComputerName "myserver" -Credential $cred
    Invoke-Command -Session $s -ScriptBlock { $service = Get-Service -Name Spooler}
    $invcom = Invoke-Command -Session $s -ScriptBlock { $service.status}
    Remove-PSSession -Id $s.Id
    if ($invcom.Value -ne "Running") {
    $PropertyBag.AddValue("State","ERROR") 
    $outputLongLine = "Spooler Service is not running on target server!" 
    $PropertyBag.AddValue("Description", $outputLongLine)
    else {
    $PropertyBag.AddValue("State","OK") 
    $outputLongLine = "Spooler is Running on target server."
    $PropertyBag.AddValue("Description", $outputLongLine) 
    $PropertyBag</ScriptBody>
    <Parameters>
    <Parameter>
    <Name>Username</Name>
     <Value>$RunAs[Name="MyRunAsAccountProfile"]/Domain$\$RunAs[Name="MyRunAsAccountProfile"]/UserName$</Value>
    </Parameter>
    <Parameter>
    <Name>Password</Name>
    <Value>$RunAs[Name="MyRunAsAccountProfile"]/Password$</Value>
    </Parameter>

  • Using a ZFS volume with encryption on as the Virtual disk in a Sparc VM

    Hi guys,
    Working my way through understanding how virtualization works in VM for Sparc. One question I thought of deals with having encryption turned on in a ZFS volume. If I create a volume with encryption ON, and then attach that volume as the sole virtual disk in a guest domain, will the virtualization still work? Has anyone else dealt with a scenario like this? I'm about to try it now, I'll report back with my findings.

    From my understanding, if you create a ZFS disk with encryption ON, mount it on Solaris, and after that present that to the VM, you should not have problems. The encryption will work between the volume and Solaris. To the guest vm, it should be transparent.

  • Several DAQmx Channels with Start and Clear Task VI's

    Hi,
    I'm trying to read in several DAQmx channels in a while loop. When I just place the channels within the while loop and connect them directly to the read VI's, everything is fine. But I read in the help, that this will slow down my system, because it's opening and closing the task each cycle. So I used Start Task and Clear Task VI's to open and clear them before and after the loop. But now it's only reading one of my channels in, although I wired all of them in exactly the same manner. Anyone has an idea, what I did wrong?
    Thanks,
    Miclas
    Attachments:
    Save&Stop DAQ.JPG ‏87 KB

    You would have seen the error if you had wired up and error indicator.
    You cannot run multiple tasks of the same type (i.e. an analog input) at the same time. What you read about stopping and closing tasks is correct but it was the only way your program could work. What you don't realize is that you can have multiple channels with a single task. If you used a physical channel constant, it would be something like 'dev1/ai0:2' if you had consecutive channels or 'dev1/ai0, dev1/ai2' for non-consecutive. Global channels are done in a similar fashion. You would have 'FSR1, FSR2, Knee Angle', etc.

  • Need help in creating a view with Encryption for hiding the code used by the multiple users

    Hi,
    Can anyone help me out in creating view with encryption data to hide the stored procedure logic with other users.
    I have create a stored procedure with encryted view but while running this manually temporary views are getting created, therefore the problem is if there are 500 entries then 500 temp views will get created.
    Any solution to aviod creating temporary views, please refer my code below
    USE [etl_validation]
    GO
    /****** Object:  StoredProcedure [dbo].[Pr_DBAccess_mod]    Script Date: 05/23/2014 12:53:22 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[Pr_DBAccess_mod](@ETL_CONFIG_ID INT)
    AS
    BEGIN
    DECLARE @openquery NVARCHAR(MAX),
     @DATABASENAME NVARCHAR(100),
     @HIERNAME NVARCHAR(100),
     @TABLENAME NVARCHAR(100),
     @SERVERTYPE NVARCHAR(100),
     @SERVERNAME NVARCHAR(100),
     @USERNAME NVARCHAR(100),
     @PASSWORD NVARCHAR(100),
     @ETL_CONFIG_IDN NVARCHAR(100);
     SET @ETL_CONFIG_IDN=CAST(@ETL_CONFIG_ID AS NVARCHAR);
     SET @TABLENAME='Department';
     SET @SERVERTYPE='SQL';
     SET @SERVERNAME ='192.168.31.176';
     SET @DATABASENAME='AdventureWorks2008R2';
     SET @HIERNAME = 'HumanResources';
     IF @SERVERTYPE='SQL'
     BEGIN
    /*SET @openquery= 'SELECT * INTO ##TestTable
                     FROM OPENROWSET(''SQLNCLI'',''server=192.168.31.176;Trusted_Connection=yes;'','''+@query+''')'
    SET @openquery=  'CREATE VIEW '+@TABLENAME+@ETL_CONFIG_IDN+
                     ' WITH ENCRYPTION AS SELECT * FROM OPENROWSET(''SQLNCLI'',''SERVER='+@SERVERNAME+';TRUSTED_CONNECTION=YES;'',''SELECT * FROM '+@DATABASENAME+'.'+@HIERNAME+'.'+@TABLENAME+''')'
    SELECT @openquery
    END
    EXECUTE sp_executesql @openquery
    END

    Hi aa_rif,
    According to your description and code message, you execute the sp_executesql statement in your stored procedure, it indeed create many views with a tablename and ETL_CONFIG_ID named. If you need not to use these temporary views, you can delete them when
    it contains the tablename in one view name.  
    In addition, if you want to create view with encryption in SQL Server, you can use directly the ENCRYPTION option to encrypt the T-SQL of a view in create view commands, for more information, see:
    http://learnsqlserver.in/4/Create-View-With-Encryption.aspx. if not, you can descript more detail about requriements, so that more forum members can involve into the thread and help you
    out. 
    Regards,
    Sofiya Li
    Sofiya Li
    TechNet Community Support

  • VIEW won't display channels with same names

    Hello,
    We have recently installed DIAdem 2010 and are beginning to find channel name problems that we didn't have before with 9.1.
    Traditionally we have always set the name-oriented channel references to 'only channel name' and we have never had any problems when displaying multiple traces in VIEW. Now, we find that when we display more than one trace in VIEW with channel names that are repeated we get problems with the axis system display dialogue box. This dialogue box tells me that the X and Y channel names AND NUMBERS are the same for all three traces when in fact the data displayed is different. If I try and change one of the channels it immediately reverts back to the first channel with that name.
    I have attached a screen dump to help explain. The image shows a VIEW window with three speed time histories from three separate data files that have been loaded together. The three X channels will all be named 'time' but will be channel numbers 1, 4 and 7. The Y channnels are all 'speed km\h' and are numbered 2, 5 and 8. However, the dialogue box shows that all three traces are made from channels 1 and 2 despite the three traces appearing different. If I change one of the 'time' channels from number 1 to, say, number 4, then it reverts back to number 1 as soon as I move the focus to somewhere else in the box. Version 9.1 never had this problem.
    If I swith the name-oriented channel references to '[group index]/channel name' then the problem goes away - even thought the data displayed in the graph is the same!
    I'm not entirely clear on the reasons for settling on 'name only' references - probably historical - but I am even less clear on the effect of switching to '[group index]/channel name', particularly with the many autosequences that we use.
    Is this a bug that can be fixed?
    Regards, Si.
    Attachments:
    VIEW.jpg ‏236 KB

    Simon,
    The DataFinder is a database that DIAdem installs that integrates directly into the NAVIGATOR, so that you can easily query data files/groups/channels or compile properties from multiple files into correlated curves on a graph, etc.  You might be interested in the ability to look inside your data files in the NAVIGATOR to see the group/channel structure and their properties.  This is particularly interesting if you wan to load selected groups/channels from one or more files.
    Here are the feature description files,
    Brad Turpin
    DIAdem Product Support Engineer
    National Instruments
    Attachments:
    New Features from DIAdem 9.1 to 2010.zip ‏69 KB

Maybe you are looking for

  • Error message when installing Indesign CS3 trial. I need help ASAP

    I have searched the forums and adobe.com and have tried everything that I saw. None of it worked for me. I have tried and tried to install Indesign CS3 trial. I keep getting the error message: Indesign has encountered a problem and must close. I have

  • How to determine the Xcelsius Theme and Colour scheme used in a dashboard

    I would like to know what colour scheme and xcelsius Theme has been used in creating a given dashboard.  Kindly share this information Thanks

  • Text Field String to Object problem

    Hi, i am trying to search a vector called mainStaffDataBase for a staff members name, found by getName(); Now thats all good an well, but here is the tricky part (for me) i have another vector called mainUnitDataBase, in which unit names are stored.

  • Sharing email between User accounts

    Can I set up an email account so that I can access it from multiple Users?  I would like to avoid having to go through the same set-up process separately for each User account?  Otherwise I have to download all my old emails from the web server separ

  • E71 post upgrade from 200.21... to 300.21.012

    Hey guys , i have nokia E71 . It was working superb before upgrading to the new firmware , .. I am having few problems , mentioned below .: 1- I can not connect to the internet over wifi , it say " wireless line already active , close it and try agai