How to create more than one save point in session

Hi,
I'm using Jdev 12c.
I'm trying to use the SavePoint in ADF. When I try to use createSavepoint() function of SavePointManager to create savepoint I met a problem is only one row of savepoint is created in DB (table ADF uses to kept the savepoint in DB) and it overrides the old row whether how many times I uses createSavePoint() function. I want to when I call createSavePoint(), a new row of savepoint is created instead of overriding . Below is my code:
        ControllerContext controllerContext = ControllerContext.getInstance();
        String savePointId = null;
        if (controllerContext != null) {
            SavePointManager savePointManager =
                controllerContext.getSavePointManager();
            if (savePointManager != null) {
                //creating the save point
                savePointId = savePointManager.createSavePoint();
                //putting the save point id into session scope
                ADFContext.getCurrent().getSessionScope().put("savePointId",
                                                              savePointId);
Could anybody help me this problem?
Thank you very much.

Dear Frank,
Thank you so much for your answer. Beside the save point functionality to save the state and values on the screen, do you know other ways to do the same function? Once again, thank you so much.
Linh Nguyen.

Similar Messages

  • Need Help, how to create more than one rectangle from one button in one stage of canvas

    Dear Guys,
    I has problem to create more than one rectangle canvas from one button. here my role to create :
    1. I create input size with textfield
    2. I click button called "submit query"
    3. My web will create a rectangle with specific size.
    My problem come when I click again the button, my old rectangle has been remove than my new rectangle has created.
    My question is : how I can create more than one without delete/remove the old I was created?
    Here my Code :
    <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><link rel="stylesheet" type="text/css" media="all" href="css/style.css"><script src="kinetic-v4.7.2.min.js"></script></head> <body><label>Length</label><input name="panjang" id="panjang" type="text" size="5" maxlength="5"><br> <label>Width</label><input name="lebar" id="lebar" type="text" size="5" maxlength="5"><br>  <label>Height</label><input name="tinggi" id="tinggi" type="text" size="5" maxlength="5"><br> <label>Packing Name</label><input name="nam_pac" id="nam_pac" type="text" size="5" maxlength="5"><br> <input name="submit" type="submit"> <script defer>              var stage = new Kinetic.Stage({                container: 'container',                width: 943.5,                height: 254.10              });              var layer = new Kinetic.Layer();              var rectX = stage.getWidth() / 2 - 50;              var rectY = stage.getHeight() / 2 - 50;                            var group = new Kinetic.Group({                draggable: true              });                                         var box = new Kinetic.Rect({                x: rectX,                y: rectY,                width: <?php echo ($_POST['panjang']/10)/1.3; ?>,                height: <?php echo $_POST['lebar']/10; ?>,                //fill: '#00D2FF',                stroke: 'blue',                strokeWidth: 2                //draggable: true              });               var simpleText = new Kinetic.Text({                x: Math.round(box.getWidth() / 2),                y: Math.round(box.getHeight() / 2),                text: '<?php echo $_POST['tinggi'].'/'.$_POST['nam_pac']; ?>',                fontSize: 30,                fontFamily: 'Calibri',                fill: 'blue',              });                                          // add cursor styling              box.on('mouseover', function() {                document.body.style.cursor = 'pointer';              });              box.on('mouseout', function() {                document.body.style.cursor = 'default';              });                            group.add(box);              group.add(simpleText);              layer.add(group);              stage.add(layer);            </script></body> 
    this is my printscreen may help you to help me :
    thanks before to help me
    Regards,
    Prabowo.

    It's work Ken, but if I modify your code into my code.
    error again. they say like before (...is undefined)
    May You want to check my code
    <?php
    include('pinambung.php');
    ?>
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <title>GI Loading Plan Maker</title>
    <meta name="viewport" content="width=device-width" />
    <link rel="stylesheet" type="text/css" media="all" href="css/style_2.css">
    <script src="js/kinetic-v4.7.2.min.js"></script>
    <script src="js/CalendarPopup.js"></script>
    <script src="js/jquery-1.10.2.js"></script>
    </head>
    <body>
      <header class="w" id="header"> <!--Header Area -->
          <img src="images/headers.jpg" width="100%" height="100%" />
      </header><!--End of Header Area -->
      <nav class="w" id="nav"><!--nav Area -->
          <?php include('top.php'); ?>
      </nav><!--End of nav Area -->
      <section class="w" id="main"><!--section Area -->
          <section id="content">
          <article>
            <h2>Customer Info</h2>
            <form id="myForm" action="insert.php" method="post">
            <label>Customer Name :</label><input name="cs_name" id="cs_name" type="text" size="25" maxlength="50">
            <br>
            <label>Date of Shipment :</label><input name="shipment_date" id="shipment_date" type="text" size="10" maxlength="12" > use format : YYYY-MM-DD
            <br />
            <label>Container Name :</label><input name="con_num" id="con_num" type="text" size="10" maxlength="12">
            <label>Revision :</label><input name="revision" id="revision" type="text" size="5" maxlength="5"><br />
            <label>Prepared by :</label><input name="prepared_by" id="prepared_by" type="text" size="25" maxlength="50">
            <button id="saveinfo">Save As DB</button>
            <button id="saveall">Save As Image</button>
            <button id="print" onclick="window.print();return false">Print</button>
            </form>
            <span id="result"></span>
            <script type="text/javascript" src="js/insert.js"></script>
          </article>
              <br /><br />
          <article>
              <h2>Packing Info</h2>
            <label>Container Type :</label>
            40' HC<input name="con_type" type="radio" id="con_type" value="40hc">
            40'<input name="con_type" type="radio" id="con_type" value="40">
            20<input name="con_type" type="radio" id="con_type" value="20"><br />
            <input name="loadstan" type="button" value="Create Container" id="isSelect">
            <button id="removecon">Remove Container</button>
            <br />
            <label>Length</label><input name="panjang" id="panjang" type="text" size="5" maxlength="5">
            <label>Width</label><input name="lebar" id="lebar" type="text" size="5" maxlength="5">
            <label>Height</label><input name="tinggi" id="tinggi" type="text" size="5" maxlength="5">
            <label>Packing Name</label><input name="nam_pac" id="nam_pac" type="text" size="20" maxlength="55">
            <input name="loadstan" id="loadstan" type="button" value="Load Standard Packing" onclick="window.open('spk.php', 'winpopup', 'toolbar=no,statusbar=no,menubar=no,resizable=yes,scrollbars=yes,width=300,height=400');">
            <input name="submit" type="submit" value="Create Box">
            <button id="remove">Remove Box</button><br />
          </article>
        </section>
        <aside id="sidebar">
          <label for="layer-to-delate">Select a layer to delete or rotate</label><br />
          <select id="layer-to-delete" size="14"></select><br />
          <input id="delete-layer-button" type="button" value="Delete layer">
          <input id="rotate-layer-button" type="button" value="Rotate box">
        </aside>
        <section id="content2">
          <div id="container">
          </div>
          <script defer>
          function radians (degrees) {return degrees * (Math.PI/180)}
          function degrees (radians) {return radians * (180/Math.PI)}
          function angle (cx, cy, px, py) {var x = cx - px; var y = cy - py; return Math.atan2 (-y, -x)}
          function distance (p1x, p1y, p2x, p2y) {return Math.sqrt (Math.pow ((p2x - p1x), 2) + Math.pow ((p2y - p1y), 2))}
            var stage = new Kinetic.Stage({
                container: 'container',
                width: 943.5,
                height: 254.10
            var layers = new Array();
           function addCont(){
               layer2 = new Kinetic.Layer();
                switch ($('input:radio[name=con_type]:checked').val()){
                  case '40hc':
                     var box_con = new Kinetic.Rect({
                          x: 10,
                          y: 10,
                          width: 1190/1.3,
                          height: 2300/10,
                          stroke: 'black',
                          strokeWidth: 2
                      var TextCon = new Kinetic.Text({
                          x: 10,
                          y: 240,
                          text: 'Container Size 40 HC (11900mm X 2300mm X 2550mm)',
                          fontSize: 12,
                          fontFamily: 'Calibri',
                          fill: 'green',
                      layer2.add(box_con);
                      layer2.add(TextCon);
                      stage.add(layer2);
                      break;
                     case '40':
                     var box_con = new Kinetic.Rect({
                          x: 10,
                          y: 10,
                          width: 1190/1.3,
                          height: 2300/10,
                          stroke: 'black',
                          strokeWidth: 2
                      var TextCon = new Kinetic.Text({
                          x: 10,
                          y: 240,
                          text: 'Container Size 40 (11900mm X 2300mm X 2250mm)',
                          fontSize: 12,
                          fontFamily: 'Calibri',
                          fill: 'green',
                      layer2.add(box_con);
                      layer2.add(TextCon);
                      stage.add(layer2);
                      break;
                     case '20':
                     var box_con = new Kinetic.Rect({
                          x: 10,
                          y: 10,
                          width: 580/1.3,
                          height: 2300/10,
                          stroke: 'black',
                          strokeWidth: 2
                      var TextCon = new Kinetic.Text({
                          x: 10,
                          y: 240,
                          text: 'Container Size 20 (5800mm X 2300mm X 2250 mm)',
                          fontSize: 12,
                          fontFamily: 'Calibri',
                          fill: 'green',
                      layer2.add(box_con);
                      layer2.add(TextCon);
                      stage.add(layer2);
                      break;
            function addRect() {
                layer = new Kinetic.Layer();
                var box = new Kinetic.Rect({
                    x: 10,
                    y: 10,
                    width: +(($("#panjang").val()/10)/1.3),
                    height: +($("#lebar").val()/10),
                    stroke: 'blue',
                    strokeWidth: 2
                var group = new Kinetic.Group({
                            draggable: true,
                            snap : true
                var boxLabel = $("#nam_pac").val() + "/H : " + $("#tinggi").val();            
                if (($("#panjang").val() && $("#lebar").val()) != 0) {         
                var simpleText = new Kinetic.Text({
                    x: 10,
                    y: 10,
                    text: boxLabel,
                    fontSize: 12,
                    fontFamily: 'Calibri',
                    fill: 'red',
                } else {
                    var simpleText = new Kinetic.Text({
                    x: 10,
                    y: 10,
                    text: '',
                    fontSize: 12,
                    fontFamily: 'Calibri',
                    fill: 'red',
                group.add(box);
                group.add(simpleText);
                layer.add(group);
                stage.add(layer);
                layers.push(layer);
                $("#layer-to-delete").append("<option>Layer " + boxLabel + "</option>");
            function deleteRect() {
                if($("#layer-to-delete > option").length < 1) return;
                var i = $("#layer-to-delete").prop("selectedIndex");
                layers.splice(i,1)[0].destroy();
                $("#layer-to-delete > option").eq(i).remove();
            function rotateRect() {
                if($("#layer-to-delete > option").length < 1) return;
                var i = $("#layer-to-delete").prop("selectedIndex");
                layers[i].rotateDeg(30);
                layers[i].draw();
            $("#delete-layer-button").click(function(e) {
                  deleteRect();
            $("#rotate-layer-button").click(function(e) {
                rotateRect();
            $("input[type=submit]").click(function(e) {
                addRect();
            $("#isSelect").click(function () {
                  addCont();
            $("#removecon").click(function () {
                  layer2.destroy();
            $(window).keypress(function(e) {
                if(!$(document.activeElement).is("label")) {
                    if((e.keyCode || e.which) == 46) {
                        layer.destroy();
                if((e.keyCode || e.which) == 35) {
                        layer2.destroy();
            document.getElementById('saveall').addEventListener('click', function() {
              stage.toDataURL({
                callback: function(dataUrl) {
                      window.open(dataUrl);
            }, false);
          </script>
        </section>
      </section><!--End of section Area -->
      <footer class="w" id="footer"><!--footer Area -->
        Copyright <a href="login.php" target="_new">©</a> 2013, <a href="http://omhanggar.com" target="_new">created</a><a href="http://intranet.guentner-asia.com" target="_new"> by PT. Güntner Indonesia </a>
      </footer><!--End of footer Area -->
    </body>
    </html>
    thanks again before,
    Prabowo

  • How to create more than one SID in .bash_profile

    I Want to create more than one SID in bash_profile without disturbing oracle's default SID i.e orcl and create database with new SID?

    you can create SID.env file or try to use . oraenv
    eg:-
    $ cat uat1.env
    export ORACLE_BASE=/u01/db/db10g
    export ORACLE_HOME=$ORACLE_BASE/10.2.0
    export PATH=$ORACLE_HOME/bin:$PATH
    export ORACLE_SID=UAT1
    export TNS_ADMIN=$ORACLE_HOME/network/admin
    $ . uat1.env
    $ echo $ORACLE_HOME
    /u01/db/db10g/10.2.0
    $ echo $ORACLE_SID
    UAT1else
    $ . oraenv
    ORACLE_SID = [UAT1] ? UAT1

  • How to create more than one connections between my host and server

    Hi,
    I want to create multiple connections(at least, two connections) between my host and the server.
    And use them to transfer data at the same time.
    Could you help me, and could you give me a sample code example?
    ^-^
    Thank you very much

    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import java.net.*;
    import java.io.*;
    import java.nio.channels.*;
    import javax.swing.*;
       This program shows how to interrupt a socket channel.
    public class InterruptibleSocketTest
       public static void main(String[] args)
          JFrame frame = new InterruptibleSocketFrame();
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.setVisible(true);
    class InterruptibleSocketFrame extends JFrame
       public InterruptibleSocketFrame()
          setSize(WIDTH, HEIGHT);
          setTitle("InterruptibleSocketTest");
          JPanel northPanel = new JPanel();
          add(northPanel, BorderLayout.NORTH);
          messages = new JTextArea();
          add(new JScrollPane(messages));
          busyBox = new JCheckBox("Busy");
          northPanel.add(busyBox);
          startButton = new JButton("Start");
          northPanel.add(startButton);
          startButton.addActionListener(new
             ActionListener()
                public void actionPerformed(ActionEvent event)
    //               startButton.setEnabled(false);
                   cancelButton.setEnabled(true);
                   connectThread = new Thread(new
                      Runnable()
                         public void run()
                            connect();
                   connectThread.start();
          cancelButton = new JButton("Cancel");    
          cancelButton.setEnabled(false);
          northPanel.add(cancelButton);
          cancelButton.addActionListener(new
             ActionListener()
                public void actionPerformed(ActionEvent event)
                   connectThread.interrupt();
                   startButton.setEnabled(true);
                   cancelButton.setEnabled(false);
              new Thread(new TestServer(Port)).start();
          Connects to the test server.
       public void connect()
           new Thread(new Client(Port)).start();
    //       Port++;
       class Client implements Runnable{
               Client(int port){
                   this.port = port;
               private Scanner in;
           private int port;
            public void run() {
                    try
                       SocketChannel channel = SocketChannel.open(new InetSocketAddress("localhost", port));
                       try
                          in = new Scanner(channel);
                          while (true)
                               try{
                                  if (in.hasNextLine())
                                     String line = in.nextLine();
                                     System.out.println(line + "  " + channel);
         //                            messages.append(line);
         //                            messages.append("\n");                       
                                  else Thread.sleep(100);
                               }catch(Exception e){
                                    e.printStackTrace();
                       }finally
                            messages.append("Socket closed\n" + channel);
                          channel.close();
                    catch (IOException e)
                       messages.append("\nInterruptibleSocketTest.connect: " + e);
          A multithreaded server that listens to port 8189 and sends random numbers to the client.
       class TestServer implements Runnable
              ServerSocket s;
              private int port;
              TestServer(int port){
                  this.port = port;
                  try {
                   s = new ServerSocket(port);
              } catch (IOException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
          public void run()
             try
                int i = 1;
                while (true)
                   Socket incoming = s.accept();
                   Runnable r = new RandomNumberHandler(incoming);
                   Thread t = new Thread(r);
                   t.start();
             catch (IOException e)
                messages.append("\nTestServer.run: " + e);
          This class handles the client input for one server socket connection.
       class RandomNumberHandler implements Runnable
             Constructs a handler.
             @param i the incoming socket
          public RandomNumberHandler(Socket i)
             incoming = i;
          public void run()
             try          
                  int i = 0;
                OutputStream outStream = incoming.getOutputStream();
                PrintWriter out = new PrintWriter(outStream, true /* autoFlush */);
                while (true)
                   out.println(i);  
                   i++;
                   Thread.sleep(100);
             catch (IOException e)
                messages.append("\nRandomNumberHandler.run: " + e);
             catch (InterruptedException e)
                messages.append("\nRandomNumberHandler.run: " + e);
          private Socket incoming;
       private JButton startButton;
       private JButton cancelButton;
       private JCheckBox busyBox;
       private JTextArea messages;
       private TestServer server;
       private Thread connectThread;
       public static final int WIDTH = 300;
       public static final int HEIGHT = 300;
       public static int Port = 8848;

  • How to create more than one window for a vi that can be acces anytime...just like using the creating new window in internet explorer

    hello guys,
    I want to create a vi such dat when I press a button on the frontpanel of the vi it opens the same vi in another window..and I should be able to work on this new window also able to work on the previous window without closing it...Just like opening a new window when using the internet explorer....
    I try to make my vi a reetrant vi but when I click the new window button on my vi..a new clone windows open up that I can control but the previous windows is not accessible not I close the current window...I want a way that I can acces both vi window and d operation of one will not affect the other like when the indicators are updating in one window the other window will not update...
    Thank you...
    Solved!
    Go to Solution.

    The picture attached shows what i want to achieve as a vi or executable...The new window button opens a clone of the vi, but the previous window can not be operated on until i close the clone window...i want to be able to work on both window at any time without closing one of them....The vi was design in labview 2010
    Attachments:
    ni.jpg ‏66 KB
    window vi.vi ‏8 KB

  • How to create more than one default view on an interactive report

    Hi Guys
    This links to a previous thread of mine, but is a new specific question.
    When you create an interactive report, you can select loads of columns, and then define one default report, containing only certain columns and filters etc.. The user can then continue and create their own saved reports, but these are only available for the specific user.
    I would like to be able to create multiple of these "default" reports, that are available to all users, but run of one interactive report dataset.
    I hope this is clear.
    Thanks
    Marissa

    Limitation of interactive report...only one per page.
    So you need to create multiple pages and in each page you can have one report. Depending on the condition /criteria you can show the
    page and for the end user your appln is dynamic. Make sure to create all pages of same/similar look.

  • How to Create more than one Sales order

    Hi All
    Is it possible that at Va01 initial screen i have a field with name Group and when i select the group in that field sales order for alll the customer in that group may be created automatically
    Regards,
    Ammad

    Hi,
    Not clear about your requirement. Can you explain a bit? How are you going to determine which materials are doing to sell?
    Best regards,
    Anupa

  • How to create more than one VIP use the same IP address and different port(e.g. 80 and 443)

    Hi,
    I use SCVMM LB Provider deploy network. I want to create 2 VIP use the same virtual IP but use the different port.
    for example:   VIP address 1.1.1.123   use port 80 for HTTP   and port 443 for HTTPS
    However,
    the following problems encountered, when I create the second VIP.
    PS C:\Windows\system32> New-SCLoadBalancerVIP -Name "vip11" -LoadBalancer $LB -IPAddress "1.1.1.123" -LoadBalancerVIPTemplate $VIPTemplate1 -LoadBalancerProtocol $Protocol1 -LoadBalancerHealthMonitor $HM1
    New-SCLoadBalancerVIP : A virtual IP (VIP) address with the specified name (vip11) or
    address (1.1.1.123) already exists on the load balancer (xxx). (Error ID: 13691)
    Specify a different name or IP address and try again.
    To restart the job, run the following command:
    PS> Restart-Job -Job (Get-VMMServer localhost | Get-Job | where { $_.ID -eq
    "{b41a77eb-ae0b-490a-8948-662a529b1d8c}"})
    At line:1 char:1
    + New-SCLoadBalancerVIP -Name "vip11" -LoadBalancer $LB -IPAddress "1.1.1.123" -Lo ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ReadError: (:) [New-SCLoadBalancerVIP], CarmineException
        + FullyQualifiedErrorId : 13691,Microsoft.SystemCenter.VirtualMachineManager.Cmdlets.Ne
       wSCLoadBalancerVIPCmdlet
    PS C:\Windows\system32>
    any suggestions ?
    Thank you in advance !

    I really don't know DDE very well. It is usually recommended that you switch to using ActiveX. You may not be correctly configuring the netDDE server. There is an example in the reource library that shows how to do this. You may also want to look at the DDE advise examples that came with LabVIEW 5.1 and earlier.

  • Can i create more than one instance for single database?

    HI
    anybody can tell me how to create more than one instance for single database(without using RAC)?
    thanks
    Kalanidhi

    Anandji,
    I sometimes think differently. I also think like what this person is asking..(although I have installed and administering 5 different RAC databases)
    The main doubt of mine is that we create multiple instances accessing the same storage area.
    Anyway the controlfiles of all instances will have the same information except the instance_names and instance id's.
    Hence I always think , why can't it be possible to to create another instance in the same system and point it to a controlfile which is copied from the other instance.
    Why can't the same files be shared between the two instances in a same system ?
    I know I am thinking a little bit confusing...
    Anyway I need to test that also...
    Mahesh.

  • How can I create more than one main window in a page of SAP SCRIPT?

    How can I create more than one main window in a page of SAP SCRIPT? If anybody helps me I will be obliged.
    Regards,
    Subhasish

    Hi Ganguly,
    It is possible to have more than one main window in a same page.
    You create a main window and simply you copy and past it in the same page.. it will create first main window name as MAIN and other main windows as MAIN01,MAIN02.... up to MAIN99.
    Contets flow from MAIN , MAIN01, MAIN02.......................MAIN99. contents after filling the current window it flows to next window(by default, you skip as well with some keyword not sure could be NEW-WINDOW)
    you want print the main window data twice? or you want to create two main window in the same page ?
    1. give two copies in the no of copies in the output type screen ( Which pop up is coming after excute the program ).
    2. create two page with the same script form.
    3. you can write the coding inside the program to print twice the same page.
    Hope this information use full to you..

  • How to add more than one datafile while creating tablespace

    how to add more than one datafile while creating tablespace. I know by using alter command i can add datafile but i want while creating tablespace

    Hi Dadivela,
    how to add more than one datafile while creating tablespace.Here is the syntax:
    !http://www.dba-oracle.com/images/create_tablespace.jpg!
    I do it like this:
    create tablespace myts
    datafile
    *'/u01/app/oracle/db1.dbf' size 100m,*
    *'/u02/app/oracle/db2.dbf' size 200m;*
    Here are my complete notes:
    http://www.dba-oracle.com/t_tablespace_create_alter.htm
    Hope this answers your question . . .
    Donald K. Burleosn
    Oracle Press author

  • HT4436 How to I create more than one iCloud account under one apple id?

    I was told at the apple store that I could create more than one iCloud account under the same apple id. Does anyone know how to do this? I need to make three iCloud accounts so everyone doesn't get each other contacts and notifications.

    No: but it costs nothing to create another Apple ID and open a new iCloud account with that. The only caveat is that you must associate a different email address with the new Apple ID from that with the old ID (since the address will itself become the ID) - you could open a free email address with Yahoo or Gmail.

  • How do I  create more than one CSS style for text links?

    Hello,
    Just like the title says, I need help with creating more than one CSS text link style in Dreamweaver CS4. For instance, I want the navigation on the website I'm building to have a different text link style than a link in some part of the body copy. I've been playing with Dreamweaver for a while and can't find any way to do this. If it's even possible to do this, I would really appreciate any help.

    Yes it is possible but as you have failed to provide a valid link to your site, I will tell you in general Terms:
    1) First create a class or an ID to to your Nav bar;
    2) Now style your navbar in such a way that these styles will only apply to your nav bar.  To do this, you start your style by doing something like this:
    ul#vavigation {.........}
    ul#navigation a {.........}
    ul#navigation a:hover {.........}
    ul#navigation li {.........}
    your html code might look like this:
    <ul id="navigation">
         <li><a href="#">Home</a></li>
         etc etc .........................
    </ul>
    hth

  • NTLM Authentication : why is it not possible to create more than one NTLM realm ?

    Hello,
    I'm wondering why it is not possible to create more than one NTLM realm on a wsa.
    Can you explain exactly what is the blocking point ?
    Thanks in advance
    Regards

    Well, at this point (pre 7.5), there isn't an agent, the WSA is joined to the domain, just like a Windows box, it authenticates via that trust relationship.  From that point it is all based on how NT/Active Directory domains work.   As long as there is a trust between the domains, you can can auth users from as many domains as you like.
    There is an agent in the works.  The ADAgent will be released with 7.5.  The code is already available, it was released with the ASA ver 8.4, and it will be used to pass authentication info to the WSA.  At this point, current versions still require trust relationships between all of the domains touched.
    Taken from the setup guide: http://www.cisco.com/en/US/docs/security/ibf/setup_guide/ibf10_install.html#wp1054011
    Before you configure even a single domain controller machine using the
    adacfg dc create
    command, ensure that the AD Agent machine is first joined to a domain (for example, domain
    J
    ) that has a trust relationship with each and every domain (for example, domain
    D[i]
    ) that it will monitor for user authentications (through the domain controller machines that you will be configuring on the AD Agent machine).
    Depending on your Active Directory domain structure, the following scenarios are possible:
    1. Single Forest, Single Domain—There is only one domain, D[i] for all domain controller machines, which is one and the same as domain J. The AD Agent machine must first be joined to this single domain, and since no other domains are involved, there is no need to configure any trust relationship with any other domain.
    2. Single Forest, Multiple Domains—All the domains in a single forest already have an inherent two-way trust relationship with each other. Thus, the AD Agent must first be joined to one of the domains, J, in this forest, with this domain J not necessarily being identical to any of the domains D[i] corresponding to the domain controller machines. Because of the inherent trust relationship between domain J and each of the domains D[i], there is no need to explicitly configure any trust relationships.
    3. Multiple Forests, Multiple Domains—It is possible that domain J might belong to a forest that is different than the forest to which one or more of the domains D[i] corresponding to the domain controller machines belong. In this case, you must explicitly ensure that each of the domains D[i] has an effective trust relationship with domain J, in at least one of the following two ways:
    a. A two-way external trust relationship can be established between the two domains, D[i] and J
    b. A two-way forest trust relationship can be established between the the forest corresponding to domain D[i] and the forest corresponding to domain J

  • How to share more than one Time Machine folder

    Hi,
    With Snow Leo Server I found how to find how to share more than one Time Machine Folder but I can't see how to do the same with Lion Server, could you help me with that ?
    The goal of that is to offer one TM folder per user which is located on a dedicated partition in order to limit the size of TM backups per user (150Gig).
    In Lion, in can only share one TM folder for everybody and I didn'tfind if I can set a limit size per user...
    Thank you in advance,

    I have figured out a way to enable multiple backup targets.
    However, it's one of these things I wouldn't want to describe to anyone except true programmer types, because everyone else has a 90%+ chance of messing up their system if they do something wrong.
    It involves turning off file sharing, and then editing the plist files in /private/var/db/dslocal/nodes/Default/sharepoints/
    The gist of it is this:
    a) first create all the share points you later want to use for TimeMachine, and set them up for afp-only file sharing, also create one TM target, which you can either use later, or have there so the system has one entry it knows how to handle. I just made a bogus one that I'm not actively using.
    b) turn off file sharing in Server.app
    c) turn off TimeMachine in Server.app
    d) now you can edit the files, the easiest is with Xcode, so you may want to install that first
    e) for each sharpoint you made in a) there will be a corresponding .plist file in the location indicated, these are the files that need to be edited.
    f) for each of these files
         1) the item0 string property in the timeMachineBackup array must be switched from 0 to 1
         2) a new key of type array with the name timeMachineBackupUUID must be created
         3) in the newly created array an item of type string must be placed with the value of a UUID, which can be created with the shell command uuidgen
    g) make sure all the edited plist files are saved
    h) turn on TimeMachine in the Server.app again
    If all went well, you now should be able to go to one of your networked client computers and see all the time machine share points just created as options for being a time machine target.
    Anyway, if you go that route: be careful, don't blame me if you muck things up...

Maybe you are looking for