RMI for multiple remote interfaces

We have a few classes that extend multiple remote interfaces. The stub and
skeleton created by the weblogic rmi compiler have strange names like
WLSkel3f2i4g44322n5l3i1r224p60697473f.class and
WLStub3f2i4g44322n5l3i1r224p60697473f.class.
Is this ok? How can we make it create "normal" class names?
Thanks,
Inbal

try using the -nomanglednames option on the weblogic.rmic compiler.
I think what you've got is OK - it's a result of the clever stubs weblogic
generates for rmi.
It's documented in the "Using weblogic RMI" guide.
-Dominic
Inbal Ronen wrote:
We have a few classes that extend multiple remote interfaces. The stub and
skeleton created by the weblogic rmi compiler have strange names like
WLSkel3f2i4g44322n5l3i1r224p60697473f.class and
WLStub3f2i4g44322n5l3i1r224p60697473f.class.
Is this ok? How can we make it create "normal" class names?
Thanks,
Inbal

Similar Messages

  • Running one rmiregistry for multiple remote object servers

    Hi,
    I don't find any clear answer for this situation. I want that multiple objet servers (running in separated JVMs) share one rmiregistry placed on a dedicated server. Servers stays in a same network (no firewall at all). If this feature is covered, could you give me any example or link that describe the source code ?
    Thanks very well for yours answers.
    Manuel

    Thanks again for your help, and sorry for my weak usage of english language.
    I've tried to bind some remote objects from distinct 'physical' hosts (or computers) to a dedicated registry located on another host.
    To resume: I want to use one unique registry for multiple remote objects hosts.
    EJP you have posted : But they must all be running on the same host as the Registry.
    After reading again the official rmi tutorial, I found :
    For security reasons, an application can only bind, unbind, or rebind remote object references with a registry running on the same host. This restriction prevents a remote client from removing or overwriting any of the entries in a server's registry. A lookup, however, can be requested from any host, local or remote.
    This confirm that I wanted to do was not possible.
    To override this limitation, do you think it's possible to write a remote object located on the registry host, that propose a method used from other hosts to register their remote objects ? Something like that:
    // Interface
    public interface recordFromHost extends Remote {
        int recordObject(String name, Remote obj) throws RemoteException;
    // Implementation of interface
    public class recordFromHostImpl extends UnicastRemoteObject implements recordFromHost {
        public recordFromHostImpl () throws RemoteException {
            super();
        public int recordObject(String name, Remote obj) {
           int ret=0;
            try {
                Registry registry = LocateRegistry.getRegistry();
                registry.bind(name, obj);
            } catch (Exception e) {
                System.err.println("recordObject exception:");
                e.printStackTrace();
                ret = -1;
        return ret;
    // Server code on registry host
    public class Serveur {
    public static void main(String args[]) {
            // Security manager
            if (System.getSecurityManager() == null) {
                System.setSecurityManager(new SecurityManager());
            // Start of registry
            try{
                LocateRegistry.createRegistry(1099);
            }catch(RemoteException e){
                System.exit(1);
            try {
                String name = "recordFromHost";
                recordFromHost myObj = new recordFromHostImpl ();
                Registry registry = LocateRegistry.getRegistry();
                registry.bind(name, myObj);
            } catch (Exception e) {
                System.err.println("bind exception:");
                e.printStackTrace();
    // Code used from a server host to register his remote object in the distant registry
    Registry registry = LocateRegistry.getRegistry(registry host adress);
    recordFromHost  myRecord  = (recordFromHost) registry.lookup("recordFromHost");
    Create local remote object to register (remoteObject : interface, remoteObjectImpl : implementation)
    remoteObject myRemoteObject = new remoteObjectImpl();
    // register myRemoteObject
    myRecord.recordObject("myRemoteObject", myRemoteObject );
    ...Finally, a client who want to use myRemoteObject ask the registry for this object, and use it without limitation : the remote object host will not be the registry host.
    I hope that you understand what I mean :-)
    Manuel

  • Start and stop windows service for multiple remote computers

    Hello,
    Can someone show me how to Start and Stop windows service for multiple remote computers using Command Prompt or PowerShell or even Java?
    Thank you

    You asked a pure Windows related question at a pure Java related forum. We have advised you to look for a Windows related forum to post the question. Nothing special. It's like asking a car mechanican to help you with your migraine, he would advise you to look for a general practitioner.
    But why are you so surprised and negative about this answer after all? Don't we have to help you? Don't you appreciate help? So be it then, but please stay away then if you keep this attitude.

  • Implement multiple remote interfaces

    Hi there, I wanted to write an RMI application with an remote object which implement two different remote interfaces, each has its own remote methods.
    eg:
    public class TestImpl implements Test1, Test2 {
    I only want to allow client to call the methods from Test1 remote interface (without Test2.class in the package). But exception NoClassDefFound of Test2 is caught. The reason I want to do like this is because I have a method in Test2 to unexport the remote object, call by server, so I want to hide it from client.
    I implement the system with Activation, but I couldn't unexport the TestImpl from somewhere else on the same activation group by using Activatable.unexportObject(..). I only can unexport it inside TestImpl remote object itself by calling Activatable.unexportObject(this, true); otherwise, NoSuchObjectException is caught.
    Thanks,
    Jax

    If X and A are in the same activation group, X can
    unexport A as long as it has a reference to the actual
    object A not its stub (because unexportObject() takes
    an impl not a stub).Yes, it's true that X can unexport A because there are within the same JVM. But the problem is I can't get the actual object of A.
    For example:
    // assume this code is within X
    ActivationGroupID agi = ActivationGroup.currentGroupID();
    ActivationDesc desc = new ActivationDesc(agi, "A", location, data);
    ActivationID id = ActivationGroup.getSystem().registerObject(desc);
    Remote remote = id.activate(true);
    The code above will only return a stub.
    Even if I use Activatable.register(desc), it returns a stub as well.
    How do I get the actual object?

  • What is the best method for multiple language interface?

    Hi,
    I need to adapt my CVI application to multiple languages.  But I have to be able to do this on the fly.  The Localizer is great for all the panel objects and this works great.  But I was wondering what the best method is for all the dialog box text?  Right now I'm using const char defines for the text. For exampl:
    const char *CONST_NO_STRING         = "No";
    Is there a simple method, or best practice method, to load different language dialog text at run time or on the fly?
    Thanks,
    Andy

    Not sure if Andy's original concern was settled... but let's try and button this up:
    - The UI Localizer does use a text file with manually-written translated strings for each supported language
    - From the Localizer help: this will only aid in translating the panel labels.
    Use this instrument driver to easily display user interfaces in different languages. When loading a panel or menu bar, you can specify a language file that contains translations for all the labels on the panel and all the menu items. You can create different language files for the user interfaces by translating them with the User Interface Localizer utility (localui.exe).
    - If you have additional content to be translated (like the text inside a drop down box), manually loading from .lwl, or similar, files and programmatically setting those dialog box entries would be the solution. - Looks like CVI should handle multibyte languages just fine (see below), though I have never used them.
    To close, these 2 devzones are good references:
    http://zone.ni.com/devzone/cda/tut/p/id/4036
    http://zone.ni.com/devzone/cda/tut/p/id/3841
    Regards,
    Peter Flores
    Applications Engineer

  • EOIO for multiple AE interfaces

    Hi,
    We have a requirement where we need to process interfaced flat files coming from several separate sender JMS channels in exactly the sequence that they come in.
    What we do not want is that intrfaces overtake each other because they were processed with priority or because of the file size they get assigned different rfc queues in XI.
    It is sort of an EOIO but then over multiple different interfaces.
    All the problem we have now lie in the fact that it is not entirely which inbound and outbound rfc queues are used so at the end the sequence of the interfaces is uncertain.
    Is it possible to create and use a single rfc queue (both inbound and outbound) for this situation? Would I use the JMS messaage selector value for this?
    I just need a general solution direction, I can find the details out myself.
    What is the best (most reliable) way to do this?
    Thanks a lot!
    Tom

    Hi,
    I only just now saw the answer,but that is in fact what we implemented and works like a charm. Much easier than I thought it would be.
    Thanks
    Tom

  • EventListeners for multiple remote object calls

    Hi all,
    I have a Flex component that is displaying content from multiple (specifically two) remote object calls. I can call both remote methods, get the results back, pass them off to their respective ItemRenderers, etc. with no trouble. What I need, though, is a way to determine if I get no results back from either function call, to dispatch an event to trigger the next view state, and I don't know how to do that. Something like:
    protected function ticketConfigurationStateChangeHandler(event:Event):void
                   if(getPackagePromptsResult.lastResult.length == 0 && getTicketPromptsResult.lastResult.length == 0)
                         this.dispatchEvent(new Event("ticketConfigurationStateChange"));
                protected function ticketPrompts_creationCompleteHandler(event:FlexEvent):void
                    getTicketPromptsResult.token = registrationAPI.getTicketPrompts();
                    getTicketPromptsResult.addEventListener(ResultEvent.RESULT, showTicketConfiguration);
                protected function packagePrompts_creationCompleteHandler(event:FlexEvent):void
                    getPackagePromptsResult.token = registrationAPI.getPackageCPrompts();
                    getPackagePromptsResult.addEventListener(ResultEvent.RESULT, showPackageConfiguration);
    Any suggestions would be greatly appreciated...I know I need the event listeners to be able to get lastResult.length (and have it not be null) but I don't know how to set them up so I can automatically pass the user through the component and onto the next one if there are no results returned without having the user click a button or something similar on an otherwise blank component.
    Thanks in advance!
    ~ Amanda

    Hi all,
    I have a Flex component that is displaying content from multiple (specifically two) remote object calls. I can call both remote methods, get the results back, pass them off to their respective ItemRenderers, etc. with no trouble. What I need, though, is a way to determine if I get no results back from either function call, to dispatch an event to trigger the next view state, and I don't know how to do that. Something like:
    protected function ticketConfigurationStateChangeHandler(event:Event):void
                   if(getPackagePromptsResult.lastResult.length == 0 && getTicketPromptsResult.lastResult.length == 0)
                         this.dispatchEvent(new Event("ticketConfigurationStateChange"));
                protected function ticketPrompts_creationCompleteHandler(event:FlexEvent):void
                    getTicketPromptsResult.token = registrationAPI.getTicketPrompts();
                    getTicketPromptsResult.addEventListener(ResultEvent.RESULT, showTicketConfiguration);
                protected function packagePrompts_creationCompleteHandler(event:FlexEvent):void
                    getPackagePromptsResult.token = registrationAPI.getPackageCPrompts();
                    getPackagePromptsResult.addEventListener(ResultEvent.RESULT, showPackageConfiguration);
    Any suggestions would be greatly appreciated...I know I need the event listeners to be able to get lastResult.length (and have it not be null) but I don't know how to set them up so I can automatically pass the user through the component and onto the next one if there are no results returned without having the user click a button or something similar on an otherwise blank component.
    Thanks in advance!
    ~ Amanda

  • Software architecture for multiple device interface

    Hi everybody!
    I'm quite new at LabVIEW and I have a question regarding software architecture.
    I have to program a software for controlling 3 motorized stage, a camera and a pump. I have separately programmed VI's that control each of them and now I would like to merge them in a single program and I don't know what is the best way to do it.
    So far my sub-VIs are made of "event-based" structure that reacts when the users click on pushbuttons. Should I simply put all my sub-VIs (i.e. multiple event structures) in one big while loop? Is it the best way to do it? I've been looking for a while for references about that but I couldn't find any relevant ones and I would really appreciate your help. Also if you know good references please share them to me.
    Many thanks!
    Bests,
    Julien

    If you could give me more details or send me a link to references about it it would be awesome.
    Sure, have a look at the attachement and see if it could be extended for your use?
    It is a fairly simple implementation. I use it for reading for a number of different InputStream devices, such as FPGA DMA FIFO's, sockets, files, etc..
    Br,
    /Roger
    Attachments:
    LV2009 InputStreams.zip ‏1694 KB

  • Intercom service for multiple remote sites

    We are deploying 180 remote locations with IPT. Each site is connected via a WAN. We have a centralized CallMgr (4.1(3)). Each site will be configured with SRST.
    Each site will need to be able to intercom other phones within the site. (so intercom will stay within each site).
    Is there a service that will work? asp or jsp.
    How well will that service scale?
    Is there any third party apps that will provide this service?
    Thanks
    Trae

    There are 3rd party apps out there, Berbee's Informacast is one product I've seen but there's others.
    Most (if not all) of the intercom products utilise multicasting to do the audio distribution, so generally that's stopped at your LAN border (your network guys may have it setup otherwise though).
    There's an intercom example in the SDK you may want to take a look at, but you'll be looking at further dev work yourself to get something beyond the simple example.
    cheers

  • Local Interfaces in WebLogic 7.0 Not Faster Than Remote Interfaces?

    I was curious how much faster calling business methods in
    a stateless session EJB in WebLogic 7.0 would be through
    a local interface than calling the same business methods
    through a remote interface. I timed both ways of calling
    the same methods and much to my surprise the times were
    nearly identical. I double-checked that in one case I really
    used the local interface (using ejb-local-ref, local-jndi-name,
    local interfaces in source code). Does anybody (perhaps from
    BEA) have an explanation for this? By the way, I ran the
    same experiment with other J2EE application servers such
    as IBM's WebSphere 5 (Beta) and there was a tremendous
    performance difference between local and remote interface
    usage.
    Thanks,
    Reinhard

    "Reinhard Klemm" <[email protected]> wrote in message
    news:[email protected]...
    I appreciate your response and, at the same time, I am somewhat
    surprised about it. Here are the reasons for my surprise:
    1. Your response indicates that WebLogic uses RMI for
    EJB local method calls, i.e., even if the client is on the same VM.
    I would have assumed that WebLogic would bypass RMI in such
    a situation.That is not what I said. Local interfaces wont use rmi.
    But remote interfaces do better if the call is from the same VM. This is
    weblogic rmi optimization. Please see Rob's posting also.
    2. Other J2EE application servers fare a lot better. In one
    experiment, I timed WebLogic against WebSphere 5.0 Technology
    for Developers (i.e., WebSphere 5.0 Beta, which is expressly
    NOT for performance testing) and against the Sun Reference
    Implementation. Here are the numbers for calling business
    methods in a stateless session EJB through its local interface:
    WebLogic: 5.15 ms on the average
    WebSphere: 0.41 ms on the average
    Sun Reference Implementation: 0.11 ms on the average
    This indicates to me that both WebSphere and the Sun Reference
    Implementation are better optimized than WebLogic by excluding
    RMI when making local EJB calls.
    Reinhard
    "Maruthi Nuthikattu" <[email protected]> wrote in message
    news:<[email protected]>...
    Can you post some numbers so that we can visualize the difference.
    Please add the numbers with other J2EE appserver also.
    Otherwise top of my head, the reason is:
    Weblogic rmi is well optimized for the calls with in the same JVM andsame
    J2EE application.
    This could be the reason you are not seeing much difference.
    ..maruthi
    "Reinhard Klemm" <[email protected]> wrote in message
    news:[email protected]...
    I was curious how much faster calling business methods in
    a stateless session EJB in WebLogic 7.0 would be through
    a local interface than calling the same business methods
    through a remote interface. I timed both ways of calling
    the same methods and much to my surprise the times were
    nearly identical. I double-checked that in one case I really
    used the local interface (using ejb-local-ref, local-jndi-name,
    local interfaces in source code). Does anybody (perhaps from
    BEA) have an explanation for this? By the way, I ran the
    same experiment with other J2EE application servers such
    as IBM's WebSphere 5 (Beta) and there was a tremendous
    performance difference between local and remote interface
    usage.
    Thanks,
    Reinhard

  • Role of Remote Interface in EJB 2.0

    Hi,
    Recently I was working upon a sample application for developing Entity Bean, the Home interface had a method which provided Business functionality. The implementation of the method was given in the Bean Class by preceeding the name of the method by ejbHome.
    This method was callable by just looking up the Entity Bean, thus not requiring the need for the Remote Interface.
    Now my question is why was this kind of work around required? This totally removes the need for the remote interface, if the Bean Writer decides so.
    The practices suggest that any functionality to the client should be provided via remote interface, and Home interface should contain only the methods related to life cycle of the EJB, then why to have business methods in the Home Interface.
    Please clarify.

    Bhushan!,
    I hope you getting the whole context wrong!.
    As I said earlier if you want to operate on your persistent data, then you must either find an entity bean through ejbFind() or create a new one using ejbCreate ().
    However ejbHome methods provide a functionality which is independent of the persistent data that the bean represents. For ex. Suppose you have an entity bean User that maps to a user database then in order to operate on user data you will always need a remote interface.
    However if you need some information from the bean which is independent of user data then, for ex. you want to say Hello to your clients, you need to implement this functionality using ejbHome () methods.
    I hope this helps.
    VJ

  • Multiple inheritance in remote interfaces for EJB 3.0 session beans on Webl

    Hi All,
    We started migration from EJB 2.1(WLS 8.1) to EJB 3.0(WLS 10.3.2) and identified few serious problems. One of them is related with multiple business interfaces inheritance. I wrote simple example that presents point of the problem.
    we have session bean AImpl:
    +@Stateless(name="A")+
    +@Remote({A.class})+
    +@TransactionAttribute(TransactionAttributeType.REQUIRED)+
    +public class AImpl implements A {+
    +@Override+
    +public void writeA() {+
    System.out.println("A");
    +}+
    +@Override+
    +public void writeB() {+
    System.out.println("B");
    +}+
    +@Override+
    +public void writeC() {+
    System.out.println("C");
    +}+
    +}+
    with remote interface A:
    +@Remote+
    +@JNDIName(A.JNDI_NAME)+
    +public interface A extends B, C {+
    public static String JNDI_NAME = "A_JNDI_NAME";
    void writeA();
    +}+
    As you can see A extends B, and C. Definition of both interfaces is very simple:
    +public interface B {+
    void writeB();
    +}+
    +public interface C {+
    void writeC();
    +}+
    Everything looks nice until we want to invoke some method on AImpl bean. For above implementation code:
    A a = ctx.lookup(A. JNDI_NAME);
    a.writeA();
    a.writeB();
    a.writeC();
    writes down ”A \n B” and throws exception:
    caused by: java.lang.NoSuchMethodException: pl.gov.arimr.zszik.bazowe.slowniki.ejb.A_vt0zts_AImpl_1032_WLStub.*writeC()*
    at java.lang.Class.getMethod(Class.java:1605)
    at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.getTargetMethod(RemoteBusinessIntfProxy.java:165)
    at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:57)
    so.. in stub generated by WLS there is no method from interface C ! What more interesting after small change in interface A rely on change in interface implementation order from B, C to C, B (+public interface A extends C, B {+) server writes down only A and I have stack like below:
    Caused by: java.lang.NoSuchMethodException: pl.gov.arimr.zszik.bazowe.slowniki.ejb.A_vt0zts_AImpl_1032_WLStub.*writeB()*
    at java.lang.Class.getMethod(Class.java:1605)
    at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.getTargetMethod(RemoteBusinessIntfProxy.java:165)
    at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:57)
    After this experience I came up with suspicion that Weblogic 10.3 does not support inheritance from multiple interfaces in one “generation”. Instead of that it takes only the first interface from the list.
    Does anybody have some experience with such a situation? maybe someone have an idea how to work around this problem?

    This is Not Supported in WebLogic that the Remote Interface extends other Interfaces. Because Annotation Processor just looks up inside the implemented interface methods. The actual interface which is Implemented by the Bean Class. So the Methods declared inside the Interface B and Interface C will be ignored and will not be available as part of the generated Stubs. Thats why u are getting NoSuchMethodError.
    You can even contact Oracle Support on this...there are 3-4 Cases on it. And the Solution is Work As Designed.
    Workaround is : edit your interface A as following
    Declare all the Business Methods only in the Remote Interface and not inside it's Super Interfaces.
    Example:
    @Stateless(name="A")
    @Remote({A.class})
    @TransactionAttribute(TransactionAttributeType.REQUIRED)
    public class AImpl implements A {
    @Override
    public void writeA() {
    System.out.println("A");
    @Override
    public void writeB() {
    System.out.println("B");
    @Override
    public void writeC() {
    System.out.println("C");
    @Remote
    @JNDIName(A.JNDI_NAME)
    public interface A extends B, C {
    public static String JNDI_NAME = "A_JNDI_NAME";
    void writeA();
    void writeB();
    void writeC();
    Thanks
    Jay SenSharma
    http://jaysensharma.wordpress.com (WebLogic Wonders Are Here)

  • Multiple Servers with same Remote Interface?

    Is it possible to declare the same remote interface on multiple RMI servers? Secondly, is it possible to pick which RMI server will manage a particular request?
    In other words, imagine if multiple servers could service a particular request that has the same signature, but the client wants to specify which server to send the invocation. An example would be the following:
    public String getPhoneNumber(String pLastName) ;But the client should decide that server A should manage requests of last names starting with A-G, server B should handle H-P, and server C should handle Q-Z. The remote method invocation is the same, but the server upon which is should be invoked needs to be determined at runtime.
    I realize this can be done multiple ways, with an interim proxy server that designates the server. However, I'm most interested in the ability within the RMI and/or JNDI standard to select and invoke methods on a particular server.
    Thanks for any help.

    "Server" is a little bit vague in this context.
    My assumption is that you want separate RMI servers running on separate hosts. (Otherwise, why bother with multiple "servers"?)
    That being said, it's not clear to me how you would expect RMI to sort out something as application-specific as you suggest. It sounds to me like you need your own registry/redirector. This is going to either be an rmiregistry rewrite by you, or - as was suggested by another poster - a proxy.

  • EJB3 - More than one remote interface for Session Bean?

    Hi,
    Is it possible in EJB3 to have more than one remote interface for a SessionBean?
    I have seen it posetd on here that it is possible but never been able to find any other information.
    Using JBoss as my App Server, I have deployed an App, where a SessionBean is defined as implementing 2 interfaces, both of which are annotated using @remote.
    However when I examine the JBoss JMX Console, Global JNDI Namespace only one remote interface is listed, and indeed it is the first one defined in the SessionBean.
    Considering I use a String similar to (MyApp/MyBean/remote) to do the JNDI lookup, this would indicate that it is not possible to have more than one remote interface.
    1. Is this a JBoss specific limitation?
    2. Is there another way of performing the JNDI lookup?
    Thanks,
    Alan.

    Hi,
    Thanks for prompt response! I tried the suggestion in my application, and the output from JBoss JMX Console was
    +- XXXBean (class: org.jnp.interfaces.NamingContext)
      |   |   +- remote (proxy: $Proxy291 implements No ClassLoaders found for: xxx.xxx.xxx.xxx.xxx.Remote1 (no security manager: RMI class loader disabled))Again only displaying the remote interface that is first in the @remote ({ Remote1.class , Remote2.class}) list. This would lead me to believe that JBoss does not support this.
    Can anyone confirm this?
    Alan.

  • Include multiple sub-interfaces in Cisco ASA for VPN tunnel

    I am trying to create a VPN tunnel between two Cisco ASAs where one ASA has multiple sub-interfaces.
    Say, In Cisco ASA 5550(in datacentre), I created multiple subinterfaces with VLAN ID as below:
    Inside, int0/1 : 10.1.1.0/24
    DMZ, int0/1.100: 10.1.100.0/24 (VLAN 100)
    Production, int 0/1.101 : 10.1.101.0/24 (VLAN 101)
    Management, int 0/1.102: 10.1.102.0/24 (VLAN 102)
    And another Cisco ASA 5505 is only configured with 1 x inside interface Inside, int 0/1: 192.168.1.0/24
    So far, I have only been able to provide outside access to one of the sub-interfaces as NAT rule on inside interface didn't work for VLANs. Hence had to issue Global NAT rule to be applied on Production subinterface so that production VLAN can have outside access. I have managed to establish VPN tunnel between two ASAs on Production sub-interface only, Source interface = Production subinterface
    Additional settings:
    Have ACL to allow all sub interfaces to access outsite ( lower security level)
    NAT rules is configured on Production subinterface with Source NAT Type as Dynamic PAT; when this was configured with source interface as inside, PCs behind various VLAN coun't access internet. 
    I want to establish a site-to-site VPN tunnel with multiple sub-interfaces of Cisco ASA 5550 to Cisco ASA 5505. Would you please suggest what I am missing in my configuration? I need to be able to access multiple VLANs of datacentre from remote site.

    I am trying to create a VPN tunnel between two Cisco ASAs where one ASA has multiple sub-interfaces.
    Say, In Cisco ASA 5550(in datacentre), I created multiple subinterfaces with VLAN ID as below:
    Inside, int0/1 : 10.1.1.0/24
    DMZ, int0/1.100: 10.1.100.0/24 (VLAN 100)
    Production, int 0/1.101 : 10.1.101.0/24 (VLAN 101)
    Management, int 0/1.102: 10.1.102.0/24 (VLAN 102)
    And another Cisco ASA 5505 is only configured with 1 x inside interface Inside, int 0/1: 192.168.1.0/24
    So far, I have only been able to provide outside access to one of the sub-interfaces as NAT rule on inside interface didn't work for VLANs. Hence had to issue Global NAT rule to be applied on Production subinterface so that production VLAN can have outside access. I have managed to establish VPN tunnel between two ASAs on Production sub-interface only, Source interface = Production subinterface
    Additional settings:
    Have ACL to allow all sub interfaces to access outsite ( lower security level)
    NAT rules is configured on Production subinterface with Source NAT Type as Dynamic PAT; when this was configured with source interface as inside, PCs behind various VLAN coun't access internet. 
    I want to establish a site-to-site VPN tunnel with multiple sub-interfaces of Cisco ASA 5550 to Cisco ASA 5505. Would you please suggest what I am missing in my configuration? I need to be able to access multiple VLANs of datacentre from remote site.

Maybe you are looking for