Callback Extension object

I'm developing an extension. I want to send an object to the callback function, I sent a String in the back and all is well. But I want to send an object that is part of my own class in this extension. How should I set this class so I can access this object and its attributes to the javascript widget? You have all the samples in this topic?

Hi ibarrera,

Usually, the best way to figure on this sort of thing is to check the actual APIs BB. If the data object is not very complex, because it seems to be in your case, nothing fancy is required. The code below has quickly ripped out of https://raw.github.com/blackberry/WebWorks/master/api/io/src/main/java/blackberry/io/file/FileProper...

import net.rim.device.api.script.Scriptable;

public final class Data extends Scriptable {

    private Hashtable _fields;

    private static final String FIELD_NAME = "name";
    private static final String FIELD_ID   = "id";

    public Data( String name, Long id  ) {
        _fields = new Hashtable();

        _fields.put( FIELD_NAME, name );
        _fields.put( FIELD_ID, id );
    }

    /**
     * @see net.rim.device.api.script.Scriptable#enumerateFields(Vector)
     */
    public void enumerateFields( Vector v ) {
        if( !_fields.isEmpty() ) {
            for( Enumeration e = _fields.keys(); e.hasMoreElements(); ) {
                v.addElement( e.nextElement() );
            }
        }
    }

    /**
     * see net.rim.device.api.script.Scriptable#getElementCount()
     */
    public int getElementCount() {
        return _fields.size();
    }

    /**
     * @see net.rim.device.api.script.Scriptable#getField(String)
     */
    public Object getField( String name ) throws Exception {
        Object field = _fields.get( name );
        if( field == null ) {
            return UNDEFINED;
        }
        return field;
    }
}

Something more complicated case the source of audio extension for the Player objecthttps://github.com/blackberry/WebWorks/tree/master/api/audio/src/main/java/blackberry/audio/Player

Tags: BlackBerry Developers

Similar Questions

  • .onActivate callback for object Panel

    Hello.

    I'm working on a user interface that uses a lot of eventListeners. I would like to add and remove depending on the State of the window.

    To do this, I use reminders:

    .onActivate

    .onDeactivate

    The script below works like a charm when it is run from file > Scripts > run Script file...

    When recorded in the Scripts/ScriptUI Panels/scriptname.jsx and then run it from the window menu in AE, the recall of .onActivate doesn't seem to work.

    In any case not when right clicking on the window.

    But when you click on the first button, the .onActivate callback is triggered.

    The recall of .onDeactivate works as expected; he get is triggered when I click on another part of the interface of AE.

    Any ideas?

    {
    function safeEventWindow(thisObj){
      var win = thisObj instanceof Panel ? thisObj : new Window('palette',"Safe Event Window",undefined,{resizable:true})
      win.alignChildren = ['fill','fill']
      var mGrp = win.add('panel',undefined,'PANEL!')
      mGrp.minimumSize = [200,200]
      var btn1 = win.add('button',undefined,"I'm just a button, man.")
      btn1.alignment = ['center','center']
      btn1.onClick = switchText
      var txt1 = mGrp.add("StaticText",undefined,"\\^___________^/")
      txt1.alignment = ['center','center']
      txt1.hide()
    
    
      // FUNCTIONS
      function switchText(event){
      var state = txt1.visible
      if(state) txt1.hide()
      else txt1.show()
      }
    
    
      function mWin_refresh(){
      win.layout.layout(true)
      win.layout.resize()
      }
    
      // EVENT HANDLERS & FUNCTIONALITY
    
    
      function startMouseListeners(event){
      $.writeln("startingMouseListeners")
      mGrp.addEventListener("mouseover",switchText)
      mGrp.addEventListener("mouseout",switchText)
      }
      function stopMouseListeners(event){
      $.writeln("stoppingMouseListeners")
      mGrp.removeEventListener("mouseover",switchText)
      mGrp.removeEventListener("mouseout",switchText)
      }
    
    
      win.onActivate = startMouseListeners
      win.onDeactivate = stopMouseListeners
      win.onResizing = mWin_refresh
    
    
      //__INIT__
      if(win instanceof Window){
      win.show()
      win.center()
      }
      mWin_refresh()
    }
    
    
    //__INIT__
    safeEventWindow(this)
    
    
    }
    

    Checked the AE CC2014, windows 7: onActivate does not work, onActivate only triggered when activating a widget (the button), but not the Panel.

    Note: you should care when adding event listeners to a group/Committee: 'mouseover', and 'mouseout/mouseouthandler()' can trigger for both the Panel AND the static text (when it is visible)

    Is that what you want?

    Xavier

  • AS3: Extension object

    It is possible to extend Object()?

    Take a look at the code under. Then look at the content of the window output lower than. declaring the spread on a straight object instance is fine. Do the same for a subclass is not. Why? :)

    Thanks in advance to all. "know that I am relying heavily on you guys right now." but it's because I know that together we can get through this thing! Hurrah!

    This should work:

  • extending the view object is not any related entity object

    Hi all

    I am interested to be extended on VO standard pages in JDeveloper OA extension object
    the standard page is oracle/apps/pos/supplier/...suppSummaryPG
    and one of the view that interests me is suppSummVO
    the problem is that when I copy xml files and java files from the application server to
    my local folder jdevelope, I'm not able to open this suppSummVO, the changes which
    I find another object of VO and this (suppSummVO) object is that this VO does not
    Associated entity object and the only request is back on this VO, that is the reason that
    I am not able to open Jdeveloper, but the real problem is that how I can extend this type of VO
    in my OAExtension.

    Respect of
    Noman

    Hello

    Copy the file server.xml from the server and open the server.xml file in jdeveloper.

    Thank you
    Gerard

  • In the Application Server error ' / '.

    What should I do?

    In the Application Server error ' / '. A network-related or specific to the instance error occurred establishing a connection to SQL Server. The server is not found or inaccessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP provider, error: 0 - no connection can be made because the target machine actively refused it.) Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and its origin in the code.

    Exception details: System.Data.SqlClient.SqlException: A network-related or instance-specific error all by establishing a connection to SQL Server. The server is not found or inaccessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP provider, error: 0 - no connection could be made because the target machine actively refused it.)

    Source error:

    Line 101: Dad SqlDataAdapter = new SqlDataAdapter (SQL, con); Line 102: Dtbl DataTable = new DataTable(); Line 103: dad. Fill (dtbl); Line 104: return dtbl; Line 105 :}

    Source file: c:\HostingSpaces\almal\SiteES\Default.aspx.cs Line: 103

    Stack trace:

    [SqlException (0 x 80131904): a network-related or instance-specific error occurred establishing a connection to SQL Server.] The server is not found or inaccessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (fournisseur: fournisseur TCP, erreur: 0-aucune connexion pourrait être établie car l'ordinateur cible a activement refusée il.)] System.Data.ProviderBase.DbConnectionPool.GetConnection (DbConnection owningObject) 428 System.Data.ProviderBase.DbConnectionFactory.GetConnection (DbConnection owningConnection) + 65 System.Data.ProviderBase.DbConnectionClosed.OpenConnection (DbConnection outerConnection, DbConnectionFactory connectionFactory) + 117 System.Data.SqlClient.SqlConnection.Open () + 122 System.Data.Common.DbDataAdapter.QuietOpen (IDbConnection, ConnectionState & originalState connection) + 31 System.Data.Common.DbDataAdapter.FillInternal (DataSet dataset, DataTable [] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, command IDbCommand, CommandBehavior behavior) + 112 System.Data.Common.DbDataAdapter.Fill (DataTable [] dataTables, Int32 startRecord, Int32 maxRecords, command IDbCommand, CommandBehavior behavior) + 162 System.Data.Common.DbDataAdapter.Fill (DataTable dataTable) 115 Default3.GetTableDataMy (String SQL) in c:\HostingSpaces\almal\SiteES\Default.aspx.cs:103 Default3.Page_Load (Object sender, EventArgs e) in c:\HostingSpaces\almal\SiteES\Default.aspx.cs:179 System.Web.Util.CalliHelper.EventArgFunctionCaller (fp IntPtr, Object o, object t, e As EventArgs) System.Web.Util.CalliEventHandlerDelegateProxy.Callback + 14 (Object sender, EventArgs e) + 35 System.Web.UI.Control.OnLoad (EventArgs e) + 99 System.Web.UI.Control.LoadRecursive () + 50 System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) + 627

    Version information: Microsoft .NET Framework Version: 2.0.50727.3615; ASP.NET Version: 2.0.50727.3618

    Hello

    The question you posted would be better suited in the TechNet Forums. I would recommend posting your query in the TechNet Forums.

    https://social. .Microsoft.com/ TechNetForums/in-us/categories /.

    I hope this helps.

  • With regard to the registration of plugin for web client package in vcenter server

    Hello

    I am able to create the package (.zip file) plugin, using Eclipse plugin virgo and able to deploy and test the same thing with the serenity customer as described in the SDK tutorial.

    To register for my plugin package as an extension with vcneter server, I followed steps below:

    1 using the perl of the vi perl SDK code, and I am able to register the plugin and can see the crowd as well.

    But I am unable to see the plugin in vcenter server. As newspapers are not get generated for web client. (Maintenance records is not created. All the required services are running).

    Please suggest any script I can use to deploy the plugin for the production phase. And also the steps to generate logs.

    Thank you very much.

    I have attached a java program showing how to register a vSphere Client Web plugin with vCenter server. This program is not recommended for use in production because it does not check the certificates.

    Also this program will work if your plugin zip archive is located at the url "http://". If your zip file is at url 'https://', then you must provide the digital fingerprint of the server in the server property of the

    Extension data object. You can do the same way that the property of the customer was populated in the provided code. Here is the link to the Extension object where you can find all of the properties of an object to extend VMware vSphere 5.1

    HTH.

  • How to use NavigationRequest targetProperties?

    In my case, I want to navigate to a global vision of another global vision and want to pass a context. I use NavigationRequest for the target event view and shipping. I also want to pass a context. I saw there is a targetProperties property in the NavigationRequest, how can I use it? Am I on the right track or it is not possible to navigate to a global vision with a context?

    Thank you

    Prathiraj

    A global vision does not use a context, only views object have the notion of context of the object, the object currently selected in the browser (their mediators implement IContextObjectHolder).

    NavigationRequest. targetProperties can be used to move a property bag to the extension of the target.

    For example in global services-ui SettingViewMediator change onLinkButtonClick to this:

    private void onLinkButtonClick(click:MouseEvent):void {}
    Go to the main display of the App
    var event: NavigationRequest = new NavigationRequest();
    event.targetViewUid = APPVIEW_ID;
    Optionally, you can pass a bag of properties to set on the target of extension object.
    event.targetProperties = new Dictionary();
    event.targetProperties ["settings"] = _view.setting1.text + ',' + _view.setting2.text + ', ' + _view.setting3.text;
    dispatchEvent (event);
    }

    and in MainView.xml, add the settings property that will be placed in the NavigationRequest:

    import com.vmware.samples.globalview.Util;

    Import mx.controls.Alert;

    /**

    Parameters ownership is defined by the NavigationRequest in SettingViewMediator,

    * It is an example of passage of data between two views.

    */

    public function set {settings(value:String):void}

    Simple debug message

    Alert.Show ("navigation of the display parameters, current values are:" + value);

    _settings = value;

    }

    private var _settings:String;

  • Initialize the object of BrowserField of Extension JS

    Hello

    I found a post very useful for my scenario to

    http://supportforums.BlackBerry.com/T5/Web-development/widget-JavaScript-extension-callback/m-p/4725...

    According to Adam's response, we can make the reminder in JS extension with piece of code below,

    ScriptableFunction _myFunc = new ScriptableFunction()
    {
       public Object invoke(Object obj, Object[] args) throws Exception
       {
          if (args.length == 2) {
             int param1 = ((Integer)args[0]).intValue();
             int param2 = ((Integer)args[1]).intValue();
             _browserField.getScriptEngine().executeScript("add(" + param1 + ", " + param2 + ")", null);
          }
          return UNDEFINED;
       }
    };
    

    Can someone tell me how we can initialize the object '_browserField' in Java, or is - it be passed as an argument to the call of the JS Extension.

    Thanks in advance,

    Ziya.

    Hi Ziya,

    There is an even easier way to make a reminder in your javascript.  What you can do, it is something like the following pseudocode:

    ScriptableFunction _myFunc = new ScriptableFunction()
    {
       public Object invoke(Object obj, Object[] args) throws Exception
       {
          if (args.length == 2) {
             int param1 = ((Integer)args[0]).intValue();
             int param2 = ((Integer)args[1]).intValue();
             ScriptableFunction add = (ScriptableFunction)args[3];
             add.invoke(add, [param1, param2]);
          }
          return UNDEFINED;
       }
    };
    

    Basically you can actually spend in a JavaScript function as a parameter for a reminder.  You can then grasp the handle to the ScriptableFunction and then call its invoke just as your own ScriptableFunction is called.

    It is much cleaner and allows you to really take a pointer to the instance of the Add function that you are willing to call.

  • allows you to set the callback function to extension webworks

    I see in BBM webworks API, the callback function (blackberry.bbm.platform.onaccesschanged) is defined as a field variable, then call the register function.

    Is the only way to pass a callback to webworks?

    You can pass a callback function as a parameter to a function call?

    In my exercise, I tried to define an acceptable extension webwork function a ScriptableFunction as one of the parameters.  When I pass the function() {alert("test")} as an argument, the webwork expansion feature does not work. The debugger displays the webworks function is not called when I try to get to the function as an argument.

    June

    Hi June,

    A callback function right at the method as fact in good number of our API, you can actually pass. On the top of my head, take a look at the readFIle API. You can find the source of the code here - https://github.com/blackberry/WebWorks/blob/master/api/io/src/main/java/blackberry/io/file/ReadFileF...

    You should be able to move from the ScriptableFunctions back with no problems

  • View object Extension Questions! Urgent

    Hello Experts - I have successfully extended my VO object to receive Page elements below.

    Based on the search criteria (when you press "GO" button) VO different is get executed as was the standard features. I spread all OV all right.

    RecvgPage.jpg

    Now the question is there are 4 VO but what 'INSTANCE of VIEW' I need to see Customization below. If I refer to a view instance (seeds VO) vice versa any other information is not rendered. How do we manage it? Please give me some suggestions.

    PersPage.jpg

    Thank you

    Sandy

    On the Pages.There of receipt is not required to extend Controller.Once we express all VO on this Page.I must add little code in the VoRowImpI.java file.

    Ex:

    super.setQuantityCorrected (value);

    return (number) getAttributeInternal ("QuantityReceived");

    Return super.getQuantityReceived ();

    Because some of the Oracle methods return through java methods.

    Let the blank.and of the view Instance its works perfectly and I did extensions VO for all other Pages of Correct revenue, return the Pages elements as well.

    Q: without arbitration proceeding to view how the data is rendered in the Table area?

    A: seeded oracle VO dynamically bind the data based on the search criteria.

    Thanks for the input!

    Thank you

    Sandy

  • What is the type of object to use for virtual machine model in the Points of Extension?

    Hello

    I added my plugin point of extension vsphere.core. ${objectType} .monitorViews. My plugin is for all types of objects (vm, file, vApp, resourcePool, etc) except the model of the virtual machine. My understanding is that the vm object type would be required for the virtual machine template, but that doesn't seem to be the case. Am I missing something here? Should the plugin appear for the model of the virtual machine when I use the vsphere.core.vm.monitorViews extension point?

    Thanks in advance.

    Kind regards

    Ashutosh

    Sorry, I got confused by your original question. ExtensionPoint id you are looking for is the one for adding views a model virtual machine monitor tab:

    model.monitorViews vSphere.Core.

  • How to give a name to the new (created as an extension) actionset in a vSphere of existing objects (say HostSystem)?

    Hello world

    I am trying to create the new context menu for vCenter Web Client Plugin under HostSystem object. I created actionset extension according to the lines form guidelines here.

    I had the context menu under the name of "All the Actions of noGroup" (see the following image):

    Actionset-Extension.png

    I want to change 'All the Actions noGroup' to the ' stock My_Plug-in_Name. Is this possible? and if so, how?

    -Thanks in advance.

    Lee.

    Received the response here form:

    Re: A question about the creation of extensions of the action

    > The node is always displayed "all the Actions of noGroup".

    This is because you are running in mode of development, and not with a packaged plugin.

    There is an explanation in the FAQ that comes with the SDK documentation, see "Menu shows"All the Actions of noGroup"

    Documentation of the FAQ:

  • Extension Standard VO:-oracle.jbo.ReadOnlyViewObjectException: Houston-25016: object ApprovalHistoryVO View is read-only

    When I try to extend Standard VO I got error below, how can I overcome under question.

    oracle.jbo.ReadOnlyViewObjectException: Houston-25016: object ApprovalHistoryVO View is read-only

    Thank you

    Where are you this error?

    You did not extend the VO successfully and deployed on the server?

    Check the attributes in the extended VO Updatable property.

    See you soon

    AJ

  • Cannot be applied where clause to visualize objects in controller extension

    Hello guys,.

    We already have a post of controller in the system. It is view object assigned to AOS, but display object is an instance created on the other object (PoLookupCodeVO) of the view.

    There is a lack of that clause for this display object. so we try to assign a where clause to the view, like object below.

    public class oaaugxxchOrderLineDetailsCO

    extends from xxchOrderLineDetailsCO

    ' public void processRequest (OAPageContext paramOAPageContext, OAWebBean paramOAWebBean)

    {

    OAM OAApplicationModule = paramOAPageContext.getApplicationModule (paramOAWebBean);

    OAViewObject vo = (OAViewObject) oam.findViewObject ("PoFedContractTypeDetailsVO");

    vo.setWhereClause (null);

    vo.setWhereClause ("AND ENABLED_FLAG = 'Y' and trunc (nvl (INACTIVE_DATE, SYSDATE)) > = trunc (SYSDATE)");

    vo.executeQuery ();

    }

    }

    Please advice I can do to get this functionality.

    Thank you.

    Ok..

    Looks like the whereclause is put in the other controller. So the ideal solution is to change this controller.

    If you don't want to follow the steps below.

    System.out.println ("existing Whereclause:" + vo.setWhereClause ());

    vo.setWhereClause (vo.getWhereClause () + "AND ENABLED_FLAG = 'Y' and trunc (nvl (INACTIVE_DATE, SYSDATE)) > = trunc (SYSDATE)");

    I hope this helps. Let us know how you go.

    See you soon

    AJ

  • Are there alternatives for the large objects through callback JMS?

    Hi, I am developing an application that uses JMS reminder to create this 'multi-threaded feel '. All's well if the data object returns of each MDB is relatively small, but as soon as we ended with the need to send back large objects (for example, an ArrayList of 250 objects k) of the MDB (with 20 MDB active at a given time), it breaks the app when the server ran out of memory when the MDB strikes the setObject method call on the response (server log see extract below). Is there any "known" for JMS problem managing large objects? Are there any other alternatives to recall JMS to create this 'multi-threaded' feature in WLS? Thanks in advance.


    # < 19 October 2010 01:33:16 SGT > < WARNING > < EJB > < RTAN12 > < AdminServer > < ExecuteThread [ASSET]: '13' for queue: '(self-adjusting) weblogic.kernel.Default' > < < anonymous > > <><>< 1287423196150 > < BEA-010065 > < MessageDrivenBean threw an Exception in onMessage(). The exception was:
    means: allocLargeObjectOrArray - size of the object: 9273360, elements of Num: 9273344.
    means: allocLargeObjectOrArray - size of the object: 9273360, elements of Num: 9273344
    at java.util.Arrays.copyOf(Arrays.java:2786)
    at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:94)
    in java.io.ObjectOutputStream$ BlockDataOutputStream.drain (ObjectOutputStream.java:1839)
    in java.io.ObjectOutputStream$ BlockDataOutputStream.setBlockDataMode (ObjectOutputStream.java:1748)
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1161)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
    at weblogic.jms.common.ObjectMessageImpl.setObject(ObjectMessageImpl.java:157)
    at weblogic.jms.common.ObjectMessageImpl.setObject(ObjectMessageImpl.java:133)
    at com.hp.it.ipg.vfmaps.services.vfdataquery.ejb.VfDataMiner.onMessage(VfDataMiner.java:163)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    to $Proxy123.onMessage (Unknown Source)
    at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:466)
    at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:371)
    at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:328)
    at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4585)
    at weblogic.jms.client.JMSSession.execute(JMSSession.java:4271)
    at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3748)
    to weblogic.jms.client.JMSSession.access$ 000 (JMSSession.java:114)
    to weblogic.jms.client.JMSSession$ UseForRunnable.run (JMSSession.java:5096)
    to weblogic.work.SelfTuningWorkManagerImpl$ WorkAdapterImpl.run (SelfTuningWorkManagerImpl.java:516)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

    Published by: user651019 on October 18, 2010 11:40

    It is your writing, you have put in place a use case when the application attempts to use on several large objects in parallel. The FMV is just short of the bunch. Looks like the same thing would be whether it's large objects JMS messages, or another type of object...

    Some ideas: (A) release the memory JVM - possibly by setting pagination (see chapter JMS of the Performance and Tuning Guide), (B) reduce the size of the async message line (search for "MessagesMaximum") in the same guide, (C) increase the memory to the JVM, (D) see if its possible to decompose each large into several small objects/messages object, but perhaps especially (E) do not expect to be able to have multiple threads each operate on a very large object separate simultaneously - each object necessarily consume memory while it is accessed - seriously consider reducing the number of concurrent threads according to chapter MDB of the Performance and Tuning guide.

    Tom

Maybe you are looking for