Data dependent routing with WebLogic

How do you do data dependent routing with WebLogic Platform? Does it require additional
products or can it be done just using WebLogic Platform components?
Thanks

WLI, or "WebLogic Integrator" may be what you are looking for, this is a
          full fledged message-flow/routing product built on top of JMS.
          If your needs are simple, you can roll-your-own data dependent routing
          using the WebLogic server built-ins of JMS, which provides reliable
          messaging, in combination with MDBs and/or Messaging Bridges - both of
          which allow the specification JMS selectors (filters). Furthermore,
          your MDB application can enqueue to a specific local destination (or a
          remote one, which is harder) based on the contents of the message it
          receives. Voila.
          For example, WorkQ (local or remote) --> MDB --> JobQ1 or JobQ2 or
          JobQ3. To simplify the MDB logic, JobQs could be on the same server,
          and therefore always available. (This is one of the advantages of
          having a JMS that can run in the same JVM as the app server, the other
          is very fast performance.)
          Tom
          David B wrote:
          > How do you do data dependent routing with WebLogic Platform? Does it require additional
          > products or can it be done just using WebLogic Platform components?
          >
          > Thanks
          

Similar Messages

  • Using Data-Dependent Routing in combination with Membership provider

    Hi there!
    Currently we have two Web applications running on azure using a single SQL database. We are experiencing problems with performance because we are using only one database. We are investigating some solutions like documentDB and elastic scale.
    DocumentDb seems like a really good option for us because it looks like it can be implemented easily and we know just what to do.
    With elastic scale on the other hand we have to figure out what our options are. We are using a membership provider for our users to login in one of the two applications. The other web applications does not use a membershipprovider, it does not use a login
    system at all.
    in the backend of our code we determine a subscription_id for both applications to retrieve tenant data.
    I think we have a few options here
    1. to keep using the membershipprovider we could create a database just for the login mechanism so we can determine the subscription_id, and with that subscription_id we can use Data-Dependent Routing to retrieve the correct data from the correct shard.
    2. We can add extra columns to the Shard Map Manager database (i think i've read that it's not supposed to be used for user data) like username and password so we can login through this database.
    Does anyone has better options than the options mentioned before and can anyone give me advise on how we should deal with these issues?
    Thanks!

    Elmar --
    The best approach would be to maintain the Membership DB in a separate Azure SQL database.  Then you could shard your transaction details across an Elastic Scale set of databases based on the subscription ID.   (The Shard Map Manager
    database is not designed to be extended with additional columns, and Elastic Scale works by caching that Shard Map data in the client application anyway, and those in-memory structures can't be changed).
    You would use an ordinary ADO.Net connection to query membership for a Subscription ID, and then get an appropriate shard-specific connection using the Elastic Scale GetOpenConnectionForKey method, passing the subscription ID retrieved from
    the membership query. 

  • BUFTYPECONV vs Data Dependent Routing

    Hello everyone,
    when using BUFTYPECONV for a service in conjunction with data dependent routing, which buffer type is used for the DDR? The original buffertype or the converted?
    If I re-phrase the question: Which operation is performed first - buffer conversion or data dependent routing?
    Any input on this welcome,
    /Per
    Per Lindstrom R2Meton AB, SWEDEN

    Per,
    The datatype conversion occurs after routing in the server that has been
    chosen to process the service.
    When the server receives the message and sees that it has receved an XML
    buffer for a service with BUFTYPECONV specified, the postrecv function for
    the XML buffer type converts the buffer to FML or FML32. When the service
    calls tpreturn(), if the buffer passed to tpreturn() is an FML or FML32
    buffer, it is converted back to XML before the reply message is sent back to
    the caller.
    <plindstrom> wrote in message news:[email protected]..
    Hello everyone,
    when using BUFTYPECONV for a service in conjunction with data dependentrouting, which buffer type is used for the DDR? The original buffertype or
    the converted?
    >
    If I re-phrase the question: Which operation is performed first - bufferconversion or data dependent routing?
    >
    Any input on this welcome,
    /Per
    Per Lindstrom R2Meton AB, SWEDEN

  • Tpdequeue and data depending routing

    Hi all,
    I would like to use data dependant routing. I try to use example from TMQUEUE server's reference.
    *GROUPS
    TMQUEUEGRP1 GRPNO=1 TMSNAME=TMS_QM
    OPENINFO="TUXEDO/QM:/dev/device1:myqueue"
    TMQUEUEGRP2 GRPNO=2 TMSNAME=TMS_QM
    OPENINFO="TUXEDO/QM:/dev/device2:myqueue"
    *SERVERS
    TMQUEUE SRVGRP="TMQUEUEGRP1" SRVID=1000 RESTART=Y GRACE=0
    CLOPT="-s ACCOUNTING:TMQUEUE"
    TMQUEUE SRVGRP="TMQUEUEGRP2" SRVID=1000 RESTART=Y GRACE=0
    CLOPT="-s ACCOUNTING:TMQUEUE"
    TMQFORWARD SRVGRP="TMQUEUEGRP1" SRVID=1001 RESTART=Y GRACE=0 REPLYQ=N
    CLOPT=" -- -qservice1"
    TMQFORWARD SRVGRP="TMQUEUEGRP2" SRVID=1001 RESTART=Y GRACE=0 REPLYQ=N
    CLOPT=" -- -qservice1"
    *SERVICES
    ACCOUNTING ROUTING="MYROUTING"
    *ROUTING
    MYROUTING FIELD=ACCOUNT BUFTYPE="FML"
    RANGES="MIN - 60000:TMQUEUEGRP1,60001-MAX:TMQUEUEGRP2"
    When I do tpdequeue("ACCOUNTING", "service1", ...), I got error in ULOG "4052 ERROR: NULL input buffer not allowed for service 'ACCOUNTING', which uses routing".
    Is it posible to use tpdequeue() with data dependant routing or only TMQFORWARD can dequeue messages from queue?
    Thanks.

    Hi,
    I'm not exactly sure what it is you are trying to do. Although the TMQUEUE servers advertise their service as the name of the queuespace, you cannot apply data dependent routing to that service as the buffer type that service uses is an internal Tuxedo buffer type and not one of the standard buffer types. This is because the service has to pass additional information (such as the information from the TPQCTL structure) besides the buffer being enqueued or dequeued.
    Where you can use data dependent routing is on the delivery of the message to a service performed by TMQFORWARD since TMQFORWARD simply uses tpcall() to invoke the service with the buffer retrieved from the queue.
    I'm not sure I answered your question, but if you could perhaps explain what it is you want to accomplish, I might be able to suggest something.
    Regards,
    Todd Little
    Oracle Tuxedo Chief Architect

  • Data dependent routing

    Hi all,
    We would like to overwrite the routing function for FML32 buffer in tuxedo 9.1. The question is that it seems that the only way is defining a new type of buffer, and set the new function there. But also, we can'f find information about how to call the right server before, in the same transaction..
    Also we've heard that in tuxedo 10g you can define your own routing funcion. Is that true? any place where we could find more information about this issue?.
    Regards.

    Hi!!!
    first of all thanks for your responses!!
    In fact we have our database partitioned that way. We have oracle RAC and when different instances access to the same data we have many traffic that we need to avoid.
    So we have several instances of our servers in different groups each one connected to different instances of oracle rac.
    Each instance will allways access the same partitions. For example:
    INSTANCE0 - >PARTITION 0 AND 4 -> in this partition we have users like mod (user, 8)=0 or 4
    INSTANCE1 -> PARTICION 1 AND 5 -> in this partition we have users like mod (user, 8)=1 or 5
    INSTANCE2 -> PARTICION 2 AND 6 -> in this partition we have users like mod (user, 8)=2 or 6
    INSTANCE3 -> PARTICION 3 AND 7 -> in this partition we have users like mod (user, 8)=3 or 7
    we need to route all request for users that mod (user, 8) -> 0 or 4 -> to TUXEDO GROUP that connects with instance 0, and so on.
    We thought about the solution proposed by Malcom Freeman, but in our case we can't force our clients to change their systems and perform the mod operation. We are also considerating the opcion of moving our code to a new server such as:
    SERVER_CALLED_BY_OUR_CLIENTS
    { do nothing but calculate mod()
    call NEW_SERVER_WITH_NEW_FIELD_FOR_ROUTING
    But we already have many servers and many services.. and we are trying to avoid this opcion
    Now we are trying the overwriting option. For this we tryed that, if we change the routing function in FML buffer like:
    "FML32", /* type */
    "*", /* subtype */
    1024, /* dfltsize */
    _finit32, /* initbuf */
    _freinit32, /* reinitbuf */
    _funinit32, /* uninitbuf */
    _fpresend32, /* presend */
    _fpostsend32, /* postsend */
    _fpostrecv32, /* postrecv */
    _fencdec32, /* encdec */
    _newrouting, /* route */
    and we do:
    int _newrouting(char routing_name, char service, char data, long  len, char group)
    userlog ("calling new routing");
    return froute32 (routingname, service, data, len, group);
    It works (also we get our trace in ULOG). So we are trying now to get de routing field from data, and convert it and after that compose de buffer with new data to call _froute32... we hope that should work, but now we have some problems trying to get routing config from ubb (we're using MIB) to know the field we have to extract from buffer...The fact is that first we thought that in data we'll get the user, but it seems to be a bit complicated.
    Regards

  • Transfer Master Data Rate Routing

    Hello Gurus,
    We need to transfer Master Data (Rate Routing) with ALE. We already configure the ALE connection. We need to know which is the Process Code in the Inbound Table.
    Anyone can help us, please.
    Thanks in advance.
    Best Regards.

    Check this link
    http://help.sap.com/saphelp_47x200/helpdata/en/92/58d455417011d189ec0000e81ddfac/frameset.htm
    For BOM and materials there are transaction codes...but i could not get for WC and Routing...

  • How is ATG-Data utilized with weblogic compared to Jboss?

    Greetings,
    I have expertise with ATG on Jboss and am new to WebLogic. So far so good but I have a few questions that I have not been able to answer on my own.
    How does WebLogic handle ATG-Data? I have set the server start options within config.xml for each instance - the java options for module list, server name, atg data directory location and memory requirements as I normally do with the run.conf for jboss. However, nothing gets populated in the ATG-Data directory when starting up the servers. On set runassembler with standalone and liveconfig on as well. (understanding that i can use pack and standalone together with weblogic).
    Any ideas what I could be missing?
    Thanks!
    -Kip

    OK I got ATG-Data directory working as I was expecting. Seems CIM was my hindrance. I scrapped the managed servers that CIM created for me and recreated them from admin console and then redeployed the -standalone ears using nostage deployment plan.
    With this I now get ATG-Data directory where I wanted it: /opt/Oracle/ATG-Data/servers/store-a/localconfig (last entry for config layer in the store-a.out log)
    This ATG-Data directory is configured in the domains config.xml for server-start arguments under the managed server group.
    -Xms1280m -Xmx1280m -Xmn256m -XX:PermSize=512m -Datg.dynamo.data-dir=/opt/Oracle/ATG-Data -Datg.dynamo.server.name=store-a
    This is progress!
    However, the module list shows all modules that were applied during runassembler for that atg server in the log - I am unable to override the module startup list with -Datg.dynamo.modules= within server start arguments.
    The reason I want to override the list is because I prefer to use the same ATGProduction ear for lock manager and procedit servers without requirement them to load all the modules that were assembled in the ear.
    I appreciate any tips or suggestions for best practices!
    Thanks!
    -Kip

  • Please Help PI Data Dependent Integration Builder Authorizations NOT Workng

    Dear Friends / Experts,
    I had spend many days and explored all Weblog  and links on this website and implemented all the steps required to acheive Data Dependent Integration Builder Security and I am not successful so far. I am just giving up now - Please Help Me ---
    As I said, I already read all the important Forum Links and SAP Web links and Followed Each and Every Step - service.sap.com/instguidesNW04 ® Installation ® SAP XI
    Security Requirement - Data Dependent/Object Level Authorizations in XI / PI
    In distributed teams or in a shared PI environment it might be necessary to limit authorization for a developer or a group of developers to only one Software Component or objects within a Software Component or to specific Configuration Objects.
    Our Environment - PI 7.0 SP 16
    Created a new role in the Integration Builder Design
    u2013Add Object Types of any Software Component and Namespace
    - Enable usage of Integration Builder roles in Exchange Profile
    Integration Builder u2013Integration Builder RepositoryParameter com.sap.aii.util.server.auth.activation to true
    Assign users to the newly created Integration Builder roles
    u2013Create dummy roles in Web AS ABAP, these roles are then available as groups in Web AS Java
    u2013Assign users to these roles
    u2013Assign the Integration Builder roles to the above groups in Web AS Java
    u2013Assign unrestricted roles to Super Users
    Please help - How to validate whether Data Dependent Authorizations are Activated?
    I am working with XI Developers and Basis Team and we did updated all the Required Exchange profile parameters.
    Per this Document - User Authorizations in Integration Builder Tools - Do we need to update the server.lockauth.activation in Exchange Profile. When We updated, It removed Edit Access from all XI Developers in PI
    In both the Integration Repository and the Integration Directory, you can define more detailed authorizations that restrict access to design and configuration objects.
    In both tools, you define such authorizations by choosing Tools ® User Roles from the menu bar. The authorization for this menu option is provided by role SAP_XI_ADMINISTRATOR_J2EE. Of course, this role should only be granted to a very restricted number of administrators. To activate these more detailed authorizations, you must set exchange profile parameter com.sap.aii.ib.server.lockauth.activation to true.
    The access authorizations themselves can be defined at the object-type level only (possibly restricted by a selection path), where you can specify each access action either individually as Create, Modify, or Delete for each object type, or as an overall access granting all three access actions.
    http://help.sap.com/saphelp_nw04/helpdata/en/f7/c2953fc405330ee10000000a114084/frameset.htm
    I was able to control display and maintain access from ABAP Roles, but completely failed to implement Integration Builder Security?
    Are there any ways to check Whether Data Dependent authorization or J2EE Authorizations are activated?
    Thanks a lot
    Satish

    Hello,
    so to give you status of our issue.
    We were able to export missing business component .
    But we also exported some interfaces after that and we had some return code 8, due  to objects still present in change list on quality system (seems after previous failed transports , the change list was not cleared completley...).
    So now we have checked that no objects is present in the change list of quality system and we plan to export again our devs on quality system.
    Hope after that no more return code 8 during imports and all devs transported correctly on quality system.
    Also recommending to read that, which is pretty good.
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/7078566c-72e0-2e10-2b8a-e10fcf8e1a3d?overridelayout=t…
    Thanks all,
    S.N

  • Routing with LSMW

    how is it possible to upload the routing with LSMW as the no. of operations will be different for differernt materials?

    Hi,
    You can use LSMW to upload routing in two ways.
    First option is use std SAP object. This will be somewhat difficult but very effective if you need to populate a lot of field and do material assignments and in process characteristics also.
    Second option is to use batch input recording. Here you need to create a LSMW for header ( with one operation)  & then create for operations.( remaining). Then you will need to create another ones for inp chars, PRTs and material assignments. This method is simple but more LSMWs are required. Choice is yours, It should depend on the amount of different screens you need  to fill data.
    Regards
    Vineet

  • Can you use an external antenna with the 4G LTE Router with Voice?

    I live in a black hole of cell service - very rural, in a valley surrounded by trees, no DSL, no cable, no other options except satellite internet which I did for 15 years and will never do again. My current data setup is a Pantech UML290 USB modem connected to a Cellphone-Mate full band outdoor Omni 3G/4G antenna on the roof. I just ordered an amplifier to boost the 4G LTE connection. The modem is plugged into a Cradlepoint MBR900 router, which then provides my home internet (way more than 10 devices, and mostly wired).
    Is there a way to add the antenna and amplifier setup to the broadband router with voice so I can be assured of the signal? If so, could I then use this router to feed the Cradlepoint and continue using multiple wired devices?
    I was set to order this router last night, but the CSR through chat told me that you cannot attach antenna to the router with voice - only to the one with data. This really doesn't make any sense to me, but she was firm about it. If I can attach, can I use the cables I have or will I need a different adapter?
    There is so little information about this particular router. My current setup is doing fairly well, but I would love the option to drop my landline and increase signal strength for both voice and data. With no antenna, the modem gets around -125 db, and can't connect at all. With the antenna mounted on the roof, and routed through the Cradlepoint, I consistently get -85 db. 4G LTE speeds are around 15-19 Mb/s down and very inconsistent 2.5-4.0 Mb/s up. However, the 4G drops and resets multiple times a day, so I usually sacrifice the speed to get a more stable 4.5-5 Mb/s down and 0.5 Mb/s up through forced 3G.
    Voice calls are spotty if received at all, and frequently drop immediately if there is any connection. And of course, the data limit has been a nightmare. I could potentially save some money by porting my landline to Verizon, but not if there is no way to boost the signals. The Omni antenna will boost all, but not sure if there's any way to route the existing antenna setup to feed both the voice and data sides, or if it would be enough to allow me to do this. This router also says it's 4G LTE only, but the specs on the antenna they sell say it boosts 3G for failover, so not sure if it will grab anything else. Any help or advice GREATLY appreciated! Thanks for reading through the whole thing.

    No, not directly. You would need to transfer your data from your iPad to your Mac and then back it up to an external drive.
    Pete

  • JnlpDownloadServlet with Weblogic 6.1 - Null Pointer Exception

    Hi,
    I am using Web Start with Weblogic 6.1 and I keep getting the exception
    java.lang.NullPointerException
    at java.io.File.<init>(File.java:181)
    at com.sun.javaws.servlet.DownloadRequest.<init>(DownloadRequest.java:62)
    at com.sun.javaws.servlet.JnlpDownloadServlet.handleRequest(JnlpDownloadServlet.java:94)
    at com.sun.javaws.servlet.JnlpDownloadServlet.doGet(JnlpDownloadServlet.java:86)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:263)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2390)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:1959)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    Web start itself does not even startup !
    If I don't use the JnlpDownloadServlet I can get a simple example to work.
    The jnlp file I am using is
    <?xml version="1.0" encoding="utf-8"?>
    <!-- JNLP File for SwingSet2 Demo Application -->
    <jnlp
    spec="1.0+"
    codebase="$$codebase" href="$$name">
    <information>
    <title>Test Application</title>
    <vendor>BD</vendor>
    <description>Demo Application</description>
    <offline-allowed/>
    </information>
    <!-- security>
    <all-permissions/>
    </security-->
    <resources>
    <j2se version="1.3"/>
    <jar href="testWebStart.jar" main="true" download="eager" />
    </resources>
    <application-desc main-class="testMClient" />
    </jnlp>
    The web.xml file is;
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
    <web-app>
    <welcome-file-list>
    <welcome-file>
    index.html
    </welcome-file>
    </welcome-file-list>
    <!-- Used to do mime mapping but it is not needed
    since we are now using the JNLP sdervlet ! -->
    <servlet>
    <servlet-name>JnlpDownloadServlet</servlet-name>
    <servlet-class>com.sun.javaws.servlet.JnlpDownloadServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>JnlpDownloadServlet</servlet-name>
    <url-pattern>*.jar</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>JnlpDownloadServlet</servlet-name>
    <url-pattern>*.jnlp</url-pattern>
    </servlet-mapping>
    </web-app>
    Any help would be greatly appreciated,
    Thanks,
    Brian

    I have exactly the same problem running JBoss 3-Tomcat-4.0.1. After some investigation it seems that the problem is because of dependency on creating File objects using getRealPath()
    The problem manifests itself on several places but for instance:
    DownloadRequest Constructor:
    if(_context != null && !_path.endsWith("/")) {
    String s1 = context.getRealPath(path);
    File file = new File(s1);
    if(file != null && file.exists() && file.isDirectory())
    _path += "/";
    s1 is null so a nullpointer is thrown. Instead do something like:
    if (_context != null && !_path.endsWith("/")) {
    String s1 = context.getRealPath(path);
    if (s1 != null) {
    File file = new File(s1);
    if (file.exists() && file.isDirectory())
    _path += "/";
    But it is harder to fix on other places such as
    ResourceCatalog.scanDirectory(String path)
    File file = new File(_servletContext.getRealPath(s));
    This will faile since getRealPath returns null resulting in a nullpointer exception which will make it impossible to download versioned jars.
    The documentation for ServletContext says that getRealPath will return null if the application is packaged in a war file but this is strange since it worked fine for me for running JBoss-2.4.0_Tomcat-3.2.3. Maybe this is new behaviour for the 2.3 servlet spec ( i assume WL 6.1 is also 2.3 compliant)?

  • Announcing: Developing JSF Portlets with WebLogic Portal Whitepaper

    Just Released: Developing JSF Portlets with WebLogic Portal Whitepaper
    A supplemental developer's guide has been published to help guide WLP 10.x customers that wish to use JSF as the web framework for building portlets on WebLogic Portal. This is a sizable document (150 pages) that covers a large number of topics. It also coaches developers on best practices and common pitfalls.
    Important: It also clarifies the supported configuration of JSF within Portal Web Projects. Workshop for WebLogic by default configures a web project in a configuration that is not supported by WebLogic Portal. The guide explains how to address this:
    * Change from the unsupported MyFaces JSF implementation to the supported Sun Reference Implementation (RI)
    * Change from the unsupported "client" STATE_SAVING_METHOD to the supported "server"
    The guide can be downloaded here:
    http://download.oracle.com/technology/products/weblogic/portal/weblogic-portal-jsf-whitepaper.pdf
    To help internet searches locate this document, the table of contents is reproduced below:
    Introduction
    1.1. Prerequisites...................................................................... 8
    1.2. Applicable Versions............................................................ 8
    1.3. Native Portlet Bridges and Standard Portlet Bridges .......... 8
    1.4. JSF Portlet Support Roadmap ........................................... 9
    1.5. Whitepaper Structure ....................................................... 10
    1.6. Look Before You Leap ..................................................... 10
    1.7. For More Information........................................................ 10
    Part 1: Converting JSF Applications into Portlets
    2. IDE Support for JSF Portlets Chapter ...................................... 12
    2.1. Workshop for WebLogic – WebLogic Portal's Supported IDE 12
    2.2. Workshop Features for JSF Support in WebLogic Portal.. 12
    3. Introduction to JSF Portlets Chapter ........................................ 18
    3.1. Creating Your First JSF Portlet......................................... 18
    3.2. Essentials of JSF Portlet Views........................................ 21
    3.3. WebLogic Portal Artifacts................................................. 22
    4. Configuring JSF within WebLogic Portal Chapter..................... 24
    4.1. JSF Library Modules in WebLogic Server ........................ 24
    4.2. Installing the JSF Libraries into a Portal Web Project ....... 25
    4.3. JSF Configuration Settings............................................... 27
    4.4. Configuring JSF 1.2 ......................................................... 29
    4.5. Building an Unsupported JSF Implementation Library Module 31
    4.6. Faces Configuration is Web Application Scoped.............. 31
    5. Navigation within a JSF Portlet Chapter................................... 33
    5.1. Navigating within a Portlet with the JSF Controller ........... 33
    5.2. Redirects.......................................................................... 34
    6. Namespacing Chapter ............................................................. 35
    6.1. Namespacing Managed Bean Names.............................. 35
    6.2. Client ID Namespacing with the View and Subview Components 35
    6.3. Client ID Namespacing with the WLP NamingContainer .. 36
    7. Logging, Iterative Development, and Debugging Chapter ........ 39
    7.1. Logging............................................................................ 39
    7.2. Iterative Development ...................................................... 39
    7.3. Debugging ....................................................................... 40
    8. Custom JavaScript Chapter ..................................................... 42
    8.1. DOM Manipulation within a JSF ....................................... 42
    8.2. Form Validation within a JSF Portlet ................................ 45
    9. Preparing JSF Portlets for Production Chapter ........................ 46
    9.1. Configuration.................................................................... 46
    9.2. Performance and Scalability............................................. 47
    9.3. Security............................................................................ 49
    9.4. Localization...................................................................... 50
    Part 2: Interacting with the Portal Environment
    10. Native Bridge Architecture Chapter ...................................... 54
    10.1. Container Architecture Overview.................................. 54
    10.2. Container Architecture.................................................. 54
    10.3. Container Interactions .................................................. 55
    11. Interportlet Communication Chapter .................................... 56
    11.1. Using Session and Request Attributes for IPC (Anti-pattern) 56
    11.2. Using the WLP Event Facility for IPC with JSF Portlets 56
    11.3. Notifications ................................................................. 60
    11.4. Comparison of the IPC Approaches ............................. 60
    12. Scopes Chapter ................................................................... 62
    12.1. Conceptual Scopes for Standard JSF Applications ...... 62
    12.2. Conceptual Scopes for Portal Applications................... 63
    12.3. Implementation Patterns for Portal Scopes .................. 63
    13. State Sharing Patterns Chapter ........................................... 66
    13.1. State Sharing Concepts ............................................... 66
    13.2. HttpSession Versus HttpServletRequest ...................... 66
    13.3. Base Code for HttpSession Patterns ............................ 67
    13.4. Single Portlet Pattern ................................................... 68
    13.5. Multiple Portlet Patterns ............................................... 69
    14. Rendering Lifecycles Chapter .............................................. 77
    14.1. WLP and JSF Lifecycles .............................................. 77
    14.2. Invocation Order of WLP and JSF Lifecycle Methods... 77
    14.3. Accessing WLP Context Objects from JSF Managed Beans 78
    15. Portal Navigation Chapter .................................................... 80
    15.1. Programmatically Constructing JSF Portlet URLs ........ 80
    15.2. Changing the Active Portal Page.................................. 80
    15.3. Redirects within a Portal............................................... 83
    16. Ajax Enablement Chapter .................................................... 85
    16.1. Ajax in JSF Portlets...................................................... 85
    16.2. Partial Page Rendering Pattern.................................... 85
    16.3. Stateless API Request Pattern ..................................... 86
    16.4. Portlet Aware API Request Pattern .............................. 87
    16.5. Controlling the WLP Ajax Framework........................... 91
    17. Additional WLP Features Chapter........................................ 93
    17.2. Portlet Container Features ........................................... 93
    17.3. Portal Container Features ............................................ 98
    18. Example: Implementing a Login Portlet Chapter .................. 99
    18.1. Login Portlet Motivation................................................ 99
    18.2. Login Portlet Design..................................................... 99
    18.3. Login Portlet Implementation...................................... 101
    Part 3: Integrating Third Party Libraries
    19. Integration Overview Chapter............................................. 111
    19.1. Types of Libraries....................................................... 111
    19.2. Roadmap for MyFaces Trinidad and ADF Faces Rich Client 111
    20. Using the Facelets View Technology Chapter.................... 113
    20.1. Introduction to Facelets .............................................. 113
    20.2. Configuring Facelets Support ..................................... 113
    21. Using the Apache MyFaces Tomahawk Component Library Chapter 115
    21.1. What is Apache MyFaces Tomahawk? ...................... 115
    21.2. Support for Tomahawk in WLP................................... 115
    21.3. Tomahawk Component List........................................ 116
    21.4. Installing and Configuring Tomahawk......................... 119
    21.5. Resolving the Duplicate ID Issue................................ 120
    21.6. Referring to Resources .............................................. 120
    21.7. forceId Attribute.......................................................... 124
    21.8. File Upload................................................................. 125
    22. Using the Apache Beehive Navigation Controller Chapter . 126
    22.1. Apache Beehive Page Flow ....................................... 126
    22.2. JSF and Page Flows .................................................. 126
    22.3. Configuring the JSF Integration with Page Flows ....... 127
    Appendices
    23. Appendix 1: Consolidated List of Best Practices ................ 130
    24. Appendix 2: Known Issues and Workarounds.................... 132
    24.1. CR383659, CR383662 Inconsistent failures with JSF portlets 132
    24.2. CR342124: IllegalStateException due to duplicate client-id 132
    24.3. CR384916: IllegalStateException due to duplicate client-id when using certain components such as Tomahawk and Trinidad...... 133
    24.4. CR361477 Problems with the integration of JSF portlets with Apache Beehive Page Flows.................................................................. 133
    24.5. CR377945 JSF 1.2 suffers from a memory leak during iterative development .............................................................................. 134
    25. Appendix 3: The JSFPortletHelper Class ........................... 135
    26. Appendix 4: The CleanupPhaseListener Class .................. 147

    Hi Peter!
    First, I wish to thank you for the great work.
    We followed your whitepaper and managed to deploy a JSF portlet on WLS.
    But we are not able to register it (consume it) as remote portlet in Oracle Portal 10.1.4. The error log is as follows:
    An error occurred while trying to refresh the provider. (WWC-43190)
    An error occurred during the call to the WSRP Provider:
    java.rmi.RemoteException: serialization error: serialization error:
    unexpected null value for literal data; nested exception is:
    serialization error: serialization error: unexpected null value for literal data
    com.sun.xml.rpc.encoding.SerializationException: serialization error:
    serialization error: unexpected null value for literal data
    com.sun.xml.rpc.encoding.SerializationException: serialization error:
    unexpected null value for literal data
    Java stack trace from root exception:
    unexpected null value for literal data
    at
    oracle.webdb.wsrp.RegistrationContext_LiteralSerializer.doSerialize(RegistrationContext_LiteralSerializer.java:107)
    at
    com.sun.xml.rpc.encoding.literal.LiteralObjectSerializerBase.internalSerialize(LiteralObjectSerializerBase.java:119)
    at
    com.sun.xml.rpc.encoding.literal.LiteralObjectSerializerBase.serialize(LiteralObjectSerializerBase.java:70)
    at
    oracle.webdb.wsrp.GetServiceDescription_LiteralSerializer.doSerialize(GetServiceDescription_LiteralSerializer.java:88)
    at
    com.sun.xml.rpc.encoding.literal.LiteralObjectSerializerBase.internalSerialize(LiteralObjectSerializerBase.java:119)
    at
    com.sun.xml.rpc.encoding.literal.LiteralObjectSerializerBase.serialize(LiteralObjectSerializerBase.java:70)
    at
    com.sun.xml.rpc.client.StreamingSender._writeRequest(StreamingSender.java:473)
    at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:62)
    at
    oracle.webdb.wsrp.WSRP_v1_ServiceDescription_PortType_Stub.getServiceDescription(WSRP_v1_ServiceDescription_PortType_Stub.java:63)
    at
    oracle.webdb.wsrp.client.design.v1.OraWSRP_v1_ServiceDescription_PortType.getServiceDescription(Unknown
    Source)Do you have any idea why this happens? Or you can provide some useful links to WLP -Oracle Portal federation?
    Thank you and best regards,
    PaKo

  • How to connect websocket with weblogic.

    Hi,
    Can anyone tell how to connect websocket of html5 with weblogic server. Currently i am doing this thing with webbit NettyWebServer.
    thanks in advance

    Hi Shajon --
    Unfortunately, we're not permitted to give specific release dates/estimates - the best I can offer is that FMW 12c (which will contain WLS 12.1.2) is due to ship in CY 2013.
    I can probably provide you with the GlassFish chat example we have running on WLS (v.minor changes in API) to give you a sense of what it looks like.
    -steve-

  • RSA decryption Error: Data must start with zero

    Because of some reasons, I tried to use RSA as a block cipher to encrypt/decrypt a large file. When I debug my program, there some errors are shown as below:
    javax.crypto.BadPaddingException: Data must start with zero
         at sun.security.rsa.RSAPadding.unpadV15(Unknown Source)
         at sun.security.rsa.RSAPadding.unpad(Unknown Source)
         at com.sun.crypto.provider.RSACipher.doFinal(RSACipher.java:356)
         at com.sun.crypto.provider.RSACipher.engineDoFinal(RSACipher.java:394)
         at javax.crypto.Cipher.doFinal(Cipher.java:2299)
         at RSA.RRSSA.main(RRSSA.java:114)
    From breakpoint, I think the problem is the decrypt operation, and Cipher.doFinal() can not be operated correctly.
    I searched this problem from google, many people met the same problem with me, but most of them didn't got an answer.
    The source code is :
    Key generation:
    package RSA;
    import java.io.FileOutputStream;
    import java.io.ObjectOutputStream;
    import java.security.KeyPair;
    import java.security.KeyPairGenerator;
    import java.security.PrivateKey;
    import java.security.PublicKey;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    public class GenKey {
          * @param args
                     * @author tang
         public static void main(String[] args) {
              // TODO Auto-generated method stub
                 try {
                      KeyPairGenerator KPG = KeyPairGenerator.getInstance("RSA");
                      KPG.initialize(1024);
                      KeyPair KP=KPG.genKeyPair();
                      PublicKey pbKey=KP.getPublic();
                      PrivateKey prKey=KP.getPrivate();
                      //byte[] publickey = decryptBASE64(pbKey);
                      //save public key
                      FileOutputStream out=new FileOutputStream("RSAPublic.dat");
                      ObjectOutputStream fileOut=new ObjectOutputStream(out);
                      fileOut.writeObject(pbKey);
                      //save private key
                          FileOutputStream outPrivate=new FileOutputStream("RSAPrivate.dat");
                      ObjectOutputStream privateOut=new ObjectOutputStream(outPrivate);
                                 privateOut.writeObject(prKey)
         }Encrypte / Decrypt
    package RSA;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.ObjectInputStream;
    import java.security.Key;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.crypto.Cipher;
    //import sun.misc.BASE64Decoder;
    //import sun.misc.BASE64Encoder;
    public class RRSSA {
          * @param args
         public static void main(String[] argv) {
              // TODO Auto-generated method stub
                //File used to encrypt/decrypt
                 String dataFileName = argv[0];
                 //encrypt/decrypt: operation mode
                 String opMode = argv[1];
                 String keyFileName = null;
                 //Key file
                 if (opMode.equalsIgnoreCase("encrypt")) {
                 keyFileName = "RSAPublic.dat";
                 } else {
                 keyFileName = "RSAPrivate.dat";
                 try {
                 FileInputStream keyFIS = new FileInputStream(keyFileName);
                 ObjectInputStream OIS = new ObjectInputStream(keyFIS);
                 Key key = (Key) OIS.readObject();
                 Cipher cp = Cipher.getInstance("RSA/ECB/PKCS1Padding");//
                 if (opMode.equalsIgnoreCase("encrypt")) {
                 cp.init(Cipher.ENCRYPT_MODE, key);
                 } else if (opMode.equalsIgnoreCase("decrypt")) {
                 cp.init(Cipher.DECRYPT_MODE, key);
                 } else {
                 return;
                 FileInputStream dataFIS = new FileInputStream(dataFileName);
                 int size = dataFIS.available();
                 byte[] encryptByte = new byte[size];
                 dataFIS.read(encryptByte);
                 if (opMode.equalsIgnoreCase("encrypt")) {
                 FileOutputStream FOS = new FileOutputStream("cipher.txt");
                 //RSA Block size
                 //int blockSize = cp.getBlockSize();
                 int blockSize = 64 ;
                 int outputBlockSize = cp.getOutputSize(encryptByte.length);
                 /*if (blockSize == 0)
                      System.out.println("BLOCK SIZE ERROR!");       
                 }else
                 int leavedSize = encryptByte.length % blockSize;
                 int blocksNum = leavedSize == 0 ? encryptByte.length / blockSize
                 : encryptByte.length / blockSize + 1;
                 byte[] cipherData = new byte[outputBlockSize*blocksNum];
                 //encrypt each block
                 for (int i = 0; i < blocksNum; i++) {
                 if ((encryptByte.length - i * blockSize) > blockSize) {
                 cp.doFinal(encryptByte, i * blockSize, blockSize, cipherData, i * outputBlockSize);
                 } else {
                 cp.doFinal(encryptByte, i * blockSize, encryptByte.length - i * blockSize, cipherData, i * outputBlockSize);
                 //byte[] cipherData = cp.doFinal(encryptByte);
                 //BASE64Encoder encoder = new BASE64Encoder();
                 //String encryptedData = encoder.encode(cipherData);
                 //cipherData = encryptedData.getBytes();
                 FOS.write(cipherData);
                 FOS.close();
                 } else {
                FileOutputStream FOS = new FileOutputStream("plaintext.txt");
                 //int blockSize = cp.getBlockSize();
                 int blockSize = 64;
                 //int j = 0;
                 //BASE64Decoder decoder = new BASE64Decoder();
                 //String encryptedData = convert(encryptByte);
                 //encryptByte = decoder.decodeBuffer(encryptedData);
                 int outputBlockSize = cp.getOutputSize(encryptByte.length);
                 int leavedSize = encryptByte.length % blockSize;
                 int blocksNum = leavedSize == 0 ? encryptByte.length / blockSize
                           : encryptByte.length / blockSize + 1;
                 byte[] plaintextData = new byte[outputBlockSize*blocksNum];
                 for (int j = 0; j < blocksNum; j++) {
                 if ((encryptByte.length - j * blockSize) > blockSize) {
                      cp.doFinal(encryptByte, j * blockSize, blockSize, plaintextData, j * outputBlockSize);
                      } else {
                      cp.doFinal(encryptByte, j * blockSize, encryptByte.length - j * blockSize, plaintextData, j * outputBlockSize);
                 FOS.write(plaintextData);
                 //FOS.write(cp.doFinal(encryptByte));
                 FOS.close();
    }Edited by: sabre150 on Aug 3, 2012 6:43 AM
    Moderator action : added [ code] tags so as to make the code readable. Please do this yourself in the future.
    Edited by: 949003 on 2012-8-3 上午5:31

    1) Why are you not closing the streams when writing the keys to the file?
    2) Each block of RSA encrypted data has size equal to the key modulus (in bytes). This means that for a key size of 1024 bits you need to read 128 bytes and not 64 bytes at a time when decrypting ( this is probably the cause of your 'Data must start with zero exception'). Since the input block size depends on the key modulus you cannot hard code this. Note - PKCS1 padding has at least 11 bytes of padding so on encrypting one can process a maximum of the key modulus in bytes less 11. Currently you have hard coded the encryption block at 64 bytes which is OK for your 1024 bits keys but will fail for keys of modulus less than about 936 bits.
    3) int size = dataFIS.available(); is not a reliable way to get the size of an input stream. If you check the Javadoc for InputStream.available() you will see that it returns the number of bytes that can be read without blocking and not the stream size.
    4) InputStream.read(byte[]) does not guarantee to read all the bytes and returns the number of bytes actually read. This means that your code to read the content of the file into an array may fail. Again check the Javadoc. To be safe you should used DataInputStream.readFully() to read a block of bytes.
    5) Reading the whole of the cleartext or ciphertext file into memory does not scale and with very large files you will run out of memory. There is no need to do this since you can use a "read a block, write the transformed block" approach.
    RSA is a very very very slow algorithm and it is not normal to encrypt the whole of a file using it. The standard approach is to perform the encryption of the file content using a symmetric algorithm such as AES using a random session key and use RSA to encrypt the session key. One then writes to the ciphertext file the RSA encrypted session key followed by the symmetric encrypted data. To make it more secure one should actually follow the extended procedure outlined in section 13.6 of Practical Cryptography by Ferguson and Schneier.

  • Can i setup a wifi router with my IPad2 without using a computer ?

    Can i setup a wifi router with my IPad2 without using a computer ?

    This is going to depend on what wireless router got get. Some want to do all administration functions via a ethernet cable connection for security reasons.
    Once the router is configured, you will no longer need a computer.
    Try looking for a router that configures through a web browser & allows administration from a wifi connections.
    I think the easiest thing will be to have a friend come over & configure with a laptop.  I believe that you can configure the router without have a broadband connection.  You could configure it at a friends house. Might not want to connect to the friends broadband so not to confuse your friends broadband.  ( this is only a worry if the router also includes the broadband model.  Just a wireless router without a modem is not worry ).
    Robert

Maybe you are looking for

  • How can I undo a theme change of a photo book?

    I've just spent 5 hours picking photos for my nice photo book for a friend. I was finished, looked at the result and thought, let's save it and try another theme. Boo! There is no save function in iPhoto! I try anyways, there is a warning, I change t

  • Does TextEdit (or any other mac app) have the function I am looking for?

    hello! I was looking for a specific wordpad function, and was hoping that Apple's TextEdit program had such a feature. What I am looking for, is the ability to insert the equivalent of one of those little triangles that point to the right, indicating

  • Doubt in Exception I used

    hi... i created a procedure for deleting a row in a table...and included an exception to handle the error if no data found... it works/display th message if i use raise_application_error...but it is not working when i use predefined exception..i.e No

  • What happen to my Sharing under System Preferences ???

    http://i183.photobucket.com/albums/x74/benny8888/ff1.png and in console.log , it said "System Preferences[203] [NSPreferencePane loadMainView]: Could not load nib at "/System/Library/PreferencePanes/SharingPref.prefPane/Contents/Resources/zh_CN. lpro

  • Lost system disk

    I would like any help in the situation bellow: I've lost the system disk(Win2K), there was a database(8.1.6) installed and I've lost the parameter file. Now I reinstalled Win2K, Oracle 8.16 and I have 1 copy of the control file, 1 copy of each redolo