Message Ordering with Message Listeners

          We have three Message Listeners listeners listening to JMS Queue
          for processing messages sent to the queue. Let us assume the listeners as L1,L2
          and L3. And lets says there are three
          messages that have been submitted to the queue in the order M1,M2 and M3. M1 goes
          to L1,M2 to L2 and M3 to L3. Everything is fine. When L2 finishes processing M2
          faster than the other two listeners, M4 which is submitted later does not get
          processed
          by L2. Instead it gets processed by L1. This is a very bizarre
          behaviour as it does not utilize the available lsitener L2.
          Is there any configuration setting which can change this behaviour??Or is this
          a Weblogic 7.0 Bug. Any help on this greatly appreciated.
          Thanx,
          Sankas
          

          Zach,
          Thanx a lot for your response. I have been trying to crack this
          for the past few days and does not seem to work. I have tried your suggestion
          of 3listeners and 6 messages. It did not do the trick. I even tried 10 messages.
          Still messages 1,4 and 7 go to the first listener even though it is not ready
          to process them.
          And thanx for the neat explaination on the MessagesMaximum thing. Actually I tried
          setting to 0 and the server does not start up properly.
          To me this issue seems to be pretty big. At least from our
          implementation point of view as the messages are not delivered
          to the available listener. Is'nt there a workaround for this??
          By telling the server that it does not want to be send any more incoming messages.
          I have tried all sorts of closes and stops on the connection and session objects.
          None of them work as the spec says they wait until the Message Listener returns
          and by
          the time it returns messages are already cached on the listener.
          So I would greatly appreciate if BEA can come up with a workaround for this
          as it is very crucial for our deployment. I am little bit surprised if this issue
          hasn't come up before.
          Thanx,
          Sankas
          "Zach" <[email protected]> wrote:
          >When you set the value to 1, there is one message in-flight at all times.
          >That is your listener has 1 message and 1 is on the way. If you have
          >3
          >listeners and send 4 messages then you will still see the behavior you
          >describe. Try sending at least 6 messages for your 3 listeners.
          >
          >In the next release we have modified this to allow you to set the value
          >to
          >zero. No messages are pre-delivered/in-flight.
          >
          >_sjz.
          >
          >"Sankas" <[email protected]> wrote in message
          >news:[email protected]...
          >>
          >> Shean,
          >> I tried making the MessagesMaximum=1 change you suggested and
          >> it does not seem to do what you have said. Is there anything
          >> else that need to be changed?If you want to look at my listener
          >> code I can email it to you.
          >> Thanx,
          >> samkas
          >>
          >> "Sankas" <[email protected]> wrote:
          >> >
          >> >Shean,
          >> > Thanx a lot for your prompt reply. I will try the
          >> >configuration change of MessagesMaximum=1. Also is it possible
          >> >if I close the session of the message listener once I receive a
          >> >message. And open it once the listener is ready to process the
          >> >next message.
          >> >
          >> >Thanx,
          >> >Sankas
          >> >
          >> >
          >> >"Shean-Guang Chang" <[email protected]> wrote:
          >> >>For async consumer WLS JMS can buildup a message pipeline for each
          >consumer,
          >> >>which is tunable on the connection factory (MessagesMaximum).
          >> >>In your case you should set the message pipeline to 1 then L2 will
          >get
          >> >>M4.
          >> >>The pipeline is used to speedup message delivery to async consumer
          >and
          >> >>WLS
          >> >>JMS will try to fill up each async consumer's pipeline in round-robin.
          >> >>Thanks!
          >> >>
          >> >>"Sankas" <[email protected]> wrote in message
          >> >>news:[email protected]...
          >> >>>
          >> >>> We have three Message Listeners listeners listening to JMS Queue
          >> >>> for processing messages sent to the queue. Let us assume the
          >listeners
          >> >>as
          >> >>L1,L2
          >> >>> and L3. And lets says there are three
          >> >>> messages that have been submitted to the queue in the order M1,M2
          >> >and
          >> >>M3.
          >> >>M1 goes
          >> >>> to L1,M2 to L2 and M3 to L3. Everything is fine. When L2 finishes
          >> >>processing M2
          >> >>> faster than the other two listeners, M4 which is submitted later
          >does
          >> >>not
          >> >>get
          >> >>> processed
          >> >>> by L2. Instead it gets processed by L1. This is a very bizarre
          >> >>> behaviour as it does not utilize the available lsitener L2.
          >> >>> Is there any configuration setting which can change this
          >behaviour??Or
          >> >>is this
          >> >>> a Weblogic 7.0 Bug. Any help on this greatly appreciated.
          >> >>> Thanx,
          >> >>> Sankas
          >> >>
          >> >>
          >> >
          >>
          >
          >
          

Similar Messages

  • Example for message-style with Message Driven Bean

    hi,
    Can i have some examples of webservices message-style with
    MDB?....
    thanks

    The current version of the white-paper that Raffi
              refers to covers through 7.0. For 8.1 see also
              http://edocs.bea.com/wls/docs81/ConsoleHelp/jms_config.html#accessing_foreign_providers
              and
              http://edocs.bea.com/wls/docs81/jms/j2ee_components.html
              these features can often make integration easier.
              Tom
              Raffi wrote:
              > Doug,
              >
              > You can find very detailed information on this topic at the link below. All
              > you need to do is specify the destination-jndi-name, initial-context-factory,
              > provider-url, and connection-factory-jndi-name in weblogic-ejb-jar.xml for the
              > non-BEA JMS provider for that specific MDB.
              >
              > ftp://edownload:[email protected]/pub/downloads/jmsproviders.pdf
              >
              > Hope that helps!
              >
              > Raffi
              >
              > Doug Chew <[email protected]> wrote:
              >
              >>Can someone give me an example on how to setup a message driven bean
              >>with a foreign JMS provider using the foreign JMS provider's implementation
              >>of a connection factory. i.e. binding the foreign JMS provider's connection
              >>factory to the JNDI tree.
              >>
              >>Thanks
              >
              >
              

  • Group messaging issue with messages being sent to email rather than mobile

    Hi,
    I have an iPhone 4s running iOS 6.0.1. I tried to send out a large group message today by opening up messages and clicking on the + button (top right corner) and selecting a number of recipients one by one in the list.
    What I noticed was that when selecting some contacts, I was prompted for a delivery address while other contacts were automatically selected and I couldn't change the delivery path. Unfortunately the phone was automatically sending the messages to the recipients email rather than their mobile phone (I checked my mobile usage records). I couldn't select the recipient in the list and change the delivery method either... I also noticed that the message would change from an sms to mms message automatically because the iphone was automatically choosing an email address to send to. This is really annoying!!! Does anyone know a work around?
    I tried disabling mms messaging in settings-messaging but I would get an error saying:
    Cannot Send Message: MMS Messaging needs to be enabled to send to an email address
    This is incredibly frustrating. Why doesn't the iphone allow you to select the delivery address for each contact rather than automatically selecting an email address? I thought the iphone would be smart enough to select their mobile number since it is a mobile messaging device...
    Any ideas?

    Is there a solution to this issue?

  • Influence message control with messages generated in ERP

    Hello!
    Can you use SRM Influence message control to get an error message from ERP?
    When creating a SC/PO I would like to get the error message that the minimum order value for a vendor is not reached.
    Thanks in advance!
    Best regards,
    Karin

    Hi Karin,
    Create a custom message and implement the same in BBP_DOC_CHECK_BADI as said by maria.
    Best Regards,
    Anil

  • JMS Message ordering

    What does the JMS specification (in J2EE version 1.3) say about queues having to support message ordering for messages of the same priority?
    Is this a requirement or not....?
    Thanks for your help.
    Brent Miller
    Chicago, IL

    Hi,
    About the order of message receipt, JMS1.1 specs say that Messages consumed by a session define a serial order. JMS defines that messages sent by a session to a destination must be received in the order in which they were sent. However, JMS does not define order of message receipt across destinations or across a destination's messages sent from multiple sessions.
    However, an important point to note here is that several things can affect this order:
    1) Messages of higher priority may be received before previous lower priority messages sent.
    2) A client may not receive a NON_PERSISTENT messages due to a JMS provider failure.
    3) If both PERSISTENT and NON_PERSISTENT messages are sent to a destination, order is only guaranteed within delivery mode i.e. a later NON_PERSISTENT message may be received before an earlier PERSISTENT message. However, it will definitely arrive ahead of an earlier NON_PERSISTENT message with the same priority.
    Manish

  • Error message while creating production order with KMAT material strategy25

    Hi PP Gurus I am running variant configuration cycle...Strategy 25, Custermer Req KEK (KMAT Matrl)
    Sales order & MRP Picked the components correctly as per the dependencies
    written. So Planned order generated against sale order.
    When I tried to convert planned order to Production order...I am getting the
    below error message..
    Error Message:
    You cannot make an assignment to make-to-order stock Message no. CO684
    Diagnosis The component cannot be allocated to an individual stock because
    make-to-order production and engineer-to-order production cannot be executed
    with this order.
    A possible cause is that you are trying to create an order with reference to a
    sales-order/project, where an account assignment to a sales order/project is not
    allowed in the settlement profile that is assigned to the chosen order type.
    This is inconsistant.
    System response The following responses are possible:
    Order processing is cancelled.
    The system resets the special stock indicator back to the original value.
    Procedure Choose another order type.
    I used order type with SD1 as settelement profile.
    OVZG: default 046, settlement profile = SD1
    OPJH: Settlement profile = SD1
    Plz through some light on this if u have worked on Variant Configuration/MTO
    settlements.
    Question:
    1) Is creation of production order with KMAT material supported by SAP?
    2) If yes, why the above error occurs?
    Waiting for Ur reply
    With Best Regards

    Dear R.Brahmankar,
    I have check on the note, but it is not relevant to ecc6. The current system default setting is :
    Standrad setting for reqt class 046
    Special Stock E
    Acct Assgt Cat. M
    Valuation M
    Settlmt Profile SD1
    However if I change the Acct Assgt Cat. from M to E. It resolve the problem. I would like to know is this the right solution?
    Config in Acct Assgt M
    Consumption Posting = E
    Config in Acct Assgt E
    Consumption Posting = '  '
    In F1 key of Consumption Posting field it shown following:
    To flag the sales order item as cost- and revenue-carrying, enter an "E" (settlement via sales order).
    If you do not wish to flag the sales order item as cost- and revenue-carrying, do not enter anything.
    Dependencies
    If you are working with nonvaluated sales order stock, always flag the sales order item as cost- and revenue-carrying.
    If you are working with valuated sales order stock:
      In the case of complex make-to-order production, flag the sales order item as cost- and revenue-carrying
      In the case of sales-order-related mass production, do not flag the sales order item as cost- and revenue-carrying
    Should we change to E?
    Regards,
    Ong

  • Inbound IDoc w/message ORDERS - issues with error processing

    We are using inbound IDoc ORDERS05 with message type ORDERS to create the sales orders in SAP. In WE20 we have the following settings:
    - partner type LS (= Sales Org VKORG)
    - process code ORDE
    - trigger by background program
    - post-processing agent of type US (user) with a user ID.
    We create IDocs through an ABAP program and use RBDAPP01 to post the IDocs. When there is an application error in the IDoc posting we expect the designated user to receive a workflow item in the SAP Inbox, but for some reason this is not happening.
    I did some research and went through all the possible settings for workflow, task, etc. and everything seems to be set up correctly. When debugging RBDAPP01 I have noticed that it calls FM APPLICATION_IDOC_POST_IMMEDIAT, which, in turn, calls IDOC_START_INBOUND. If IDOC_START_INBOUND returns SY-SUBRC = 1 then the workflow item is sent correctly to the designated user, exactly as we want. But for some reason it returns 0 (I changed it to 1 in the debugger).
    It seems that IDOC_START_INBOUND reads TEDE2 records (TEVE2-EVCODE = ORDE) and sy-subrc = 1 is only possible when EDIVR2 is 1,2,3 or 4. In our case TEDE2-EDIVR2 = 6. It seems that TEDE2 is maintained in the transaction WE42. However, I tried to change the settings there but it affects the IDoc processing in whole (IDoc gets some odd status and doesn't get processed as before). I've also tried to use process code ORDE_BY_WORKFLOW in WE20 with the same "success".
    What do we need to do to get a workflow item for the errors that happen in the application layer when IDoc is posted? Is it even possible with this message type?
    Any ideas would be appreciated.

    Hi,
    Can you please share how do you overcome the problem, so that it can be helpful for others.

  • Planned orders with excesseption messages

    Hello All,
    I want to creates a customised report for the planned orders with exception messages. In which table I get the required information?  User want the selection criteria as WBS, meterial codes  and material groups. Thats why I can not use the MD04,MD05 etc.
    Please suggest the tables.
    Regards,
    Mayur

    Hello Ramagiri,
    Thanks for the quick reply.
    Table MDKP shows X tick in exception group but does not show the message number. In which table I will get these message number?
    Mayur

  • Issue: "No Authorization to send Idocs with message type Orders" - IDX5

    Hi All,
       I am working on a File to IDoc(Orders.Orders05) scenario. The sender is PI Server and the receiver is the SAP ISR system. A technical system has been created in PI SLD for the ISR system and a Business system is added to that. The logical system created in ISR system using Tcode BD54 is added to the business system in PI. A new RFC destination is created in PI system to connect to the ISR system.
      On the ISR system Partner profile is created using TCode we20 with the same logical system name already created using Tcode BD54.
    When sxi_monitor is executed on the PI system, It shows checked flag on the Inbound side and Red flag on the Outbound side. And when idx5 is executed, it shows the new Idoc number and when it is double clicked, it shows the Status Text as
    "No Authorization to send IDocs with message type Orders".
    All authorizations have been provided on the Sender side.
    Please let me know if any authorization need to be provided on the ISR system or Is this an error on any settings.
    Thanks in Advance.
    Stalin S.

    Hi,
    Check this Thread which deals with the Authorization Issue
    RFC Adapter
    And also check this how to check whether u have sufficient authorization to send the Idocs or not
    To test the Authorization check
    Double click the RFC Destination that u have created in XI towards R/3 in SM59
    Select UtilitiesTestAuthorization test
    By this you can come to know whether your user is having the propper authorization or not
    REgards
    Seshagiri

  • Creation of Custom IDoc with Message control for sales Order

    Hi all,
    I am trying to create custom Outbound IDoc with message control.
    I wrote the code in a function module and i want to register that function module. (as in inbound registration of function module as in BD51).I am not knowing if that registration is necessary for outbound Idoc, if so in which transacition?
    Please list me the steps to create a custom IDoc for Message control.
    Thanks in advance,
    Regards,
    John.

    Hi,
    You need to use FM : MASTER_IDOC_DISTRIBUTE to create outbound idoc.fill the data in the tables EDIDC,EDIDD and generate the IDOC.
    check this link:
    Re: Master_IDoc_Distribute
    and use transaction : WEDI for IDOC configurations.
    here you will have all the transactions(step by step) to set the outbound IDOC configurations.
    Regards
    Appana

  • Message Ordering or Singlton Service in SOA Suite 11g

    In SOA Suite 10g, JMS Adapter could behaviors as Singleton instance by setting the properties "XclusterGroupId".
    In addition, set Routing Service to be Synchronous execution, therefore only one instance consuming the Target message queue sequentially.
    Does this properties still take effect in SOA Suite 11g, as I didn't find this properties being mentioned through Adapter Technology documentations?
    Otherwise are there any other solutions for the Message Ordering?
    Thank you in advance.
    -Simon
    Edited by: user8408910 on Jul 13, 2009 1:31 AM

    Is it the same answer for JMS topic listeners? i.e. each new message on the topic should be processed once and only once by a Composite deployed to a cluster with >1 server instances.
    Thanks for info,
    Todd

  • Help with message please:  Warning: mysql_free_result() expects parameter 1 to be resource, null given in...... line

    I would really appreciate some help with my search & results page that is now throwing up the following error:
    Warning: mysql_free_result() expects parameter 1 to be resource, null given in...... line (the line number refers to the following code:
    mysql_free_result($RSsearchforsale);
    mysql_free_result($RsSearchForSale2);
    mysql_free_result($RsSearchForSale3);
    mysql_free_result($RsSearchForSale4);
    I am new to php and am setting up a dynamic site in Dreamweaver (thanks to the Missing Manual – very helpful). I apologise in advanced for my lengthy description of the problem (perhaps get yourself a drink before continuing!)
    I have a Search page with 4 list menus where the user can select an option from ANY or ALL of the menus, if a menu is not selected the value posted to the results page will be 'zzz'.
    On the results page I have 4 recordsets, all getting the correct results, only one recordset is required to run depending on how many of the menus from the search page have been selected and a test is run before executing the sql using a SWITCH statement checking how many of the menus had passed the 'zzz' values from the Search page if you see what I mean. The results page  has Repeating Regions, Recordset Paging and Display Record Count. The exact result that I require are generated by this method.
    THE PROBLEM, when a user makes a selection the first page of 10 results is fine, but the error message above is shown at the bottom of the page, AND when the user clicks NEXT to go to the next page of results THERE ARE NO RESULTS.
    This is exactly what happens depending on how many menus selected and which recordset is used:
    4 menus selected from Search: runs RSsearchforsale, results correct but 3 error messages on 1st page relating to mysql_free_result($RsSearchForSale2),mysql_free_result($RsSearchForSale3), & mysql_free_result($RsSearchForSale4). The display record count shows correct results found. NEXT page is empty of results and still shows the correct display record count as if it should be displaying the records, also has the same 3 error messages.
    3 menus selected from Search:  runs RsSearchForSale2, results correct but 3 error messages on 1st page relating to mysql_free_result($RSsearchforsale),mysql_free_result($RsSearchForSale3), & mysql_free_result($RsSearchForSale4). The display record count shows correct number of results. NEXT page shows results from the  DEFAULT setting of the recordset and the Display record count reflects this new set of results. Also still shows the 3 mysql_free_results for RsSearchForSale2, 3 and 4.
    2 menus selected from Search: runs   RsSearchForSale3, results correct but 2 error messages on 1st page relating to  mysql_free_result($RSsearchforsale) & mysql_free_result (RsSearchForSale4). The display record count is correct. NEXT page does exactly the same as described in above 3 menus selected.
    1 menu selected from search: runs RsSearchForSale4, results correct but 1 error meaasge on 1st page, mysql_free_result($RSsearchforsale). Display record count is correct and again when NEXT page is selected does as described in above where 2 or 3 menus selected.
    If you have gotten this far without falling asleep then thank you and well done! I have pasted my code below and I know its a lot to ask but please please can you give me an idea as to where or why I have gone wrong. I felt I was so close at perfecting this search and have been working on it for weeks now. I feel sure the problem is because I have 4 recordsets on the page but I could find no other way to get the exact results I wanted from the menus.
    Looking forward to any help.
    <?php require_once('Connections/propertypages.php'); ?>
    <?php if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
      $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;   
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      return $theValue;
    $currentPage = $_SERVER["PHP_SELF"];
    $maxRows_RSsearchforsale = 10;
    $pageNum_RSsearchforsale = 0;
    if (isset($_GET['pageNum_RSsearchforsale'])) {
      $pageNum_RSsearchforsale = $_GET['pageNum_RSsearchforsale'];
    $startRow_RSsearchforsale = $pageNum_RSsearchforsale * $maxRows_RSsearchforsale;
    $varloc_RSsearchforsale = "mpl";
    if (isset($_POST['location'])) {
      $varloc_RSsearchforsale = $_POST['location'];
    $vartype_RSsearchforsale = "vil";
    if (isset($_POST['type'])) {
      $vartype_RSsearchforsale = $_POST['type'];
    $varprice_RSsearchforsale = "pr9";
    if (isset($_POST['price'])) {
      $varprice_RSsearchforsale = $_POST['price'];
    $varbed_RSsearchforsale = "b5";
    if (isset($_POST['beds'])) {
      $varbed_RSsearchforsale = $_POST['beds'];
    switch (true) {
    case ($varloc_RSsearchforsale != 'zzz' && $vartype_RSsearchforsale != 'zzz' && $varprice_RSsearchforsale != 'zzz' && $varbed_RSsearchforsale != 'zzz'):
    mysql_select_db($database_propertypages, $propertypages);
    $query_RSsearchforsale = sprintf("SELECT DISTINCT trueprice,`desc`, `propid`, `bathrooms`, `photo1`, locationtable.loc, typetable.style, bedtable.`number` FROM detailstable JOIN locationtable ON detailstable.location=locationtable.locid JOIN typetable ON detailstable.type=typetable.typeid JOIN pricetable ON detailstable.price=pricetable.priceid JOIN bedtable ON detailstable.beds=bedtable.bedid WHERE location=%s AND price=%s AND type=%s AND beds=%s ORDER BY detailstable.trueprice ASC", GetSQLValueString($varloc_RSsearchforsale, "text"),GetSQLValueString($varprice_RSsearchforsale, "text"),GetSQLValueString($vartype_RSsearchforsale, "text"),GetSQLValueString($varbed_RSsearchforsale, "text"));
    $query_limit_RSsearchforsale = sprintf("%s LIMIT %d, %d", $query_RSsearchforsale, $startRow_RSsearchforsale, $maxRows_RSsearchforsale);
    $RSsearchforsale = mysql_query($query_limit_RSsearchforsale, $propertypages) or die(mysql_error());
    $row_RSsearchforsale = mysql_fetch_assoc($RSsearchforsale);
    if (isset($_GET['totalRows_RSsearchforsale'])) {
      $totalRows_RSsearchforsale = $_GET['totalRows_RSsearchforsale'];
    } else {
      $all_RSsearchforsale = mysql_query($query_RSsearchforsale);
      $totalRows_RSsearchforsale = mysql_num_rows($all_RSsearchforsale);
    $totalPages_RSsearchforsale = ceil($totalRows_RSsearchforsale/$maxRows_RSsearchforsale)-1;
    $queryString_RSsearchforsale = "";
    if (!empty($_SERVER['QUERY_STRING'])) {
      $params = explode("&", $_SERVER['QUERY_STRING']);
      $newParams = array();
      foreach ($params as $param) {
        if (stristr($param, "pageNum_RSsearchforsale") == false &&
            stristr($param, "totalRows_RSsearchforsale") == false) {
          array_push($newParams, $param);
      if (count($newParams) != 0) {
        $queryString_RSsearchforsale = "&" . htmlentities(implode("&", $newParams));
    $queryString_RSsearchforsale = sprintf("&totalRows_RSsearchforsale=%d%s", $totalRows_RSsearchforsale, $queryString_RSsearchforsale); } ?>
    <?php require_once('Connections/propertypages.php'); ?>
    <?php if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
      $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;   
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      return $theValue;
    $currentPage = $_SERVER["PHP_SELF"];
    $maxRows_RsSearchForSale2 = 10;
    $pageNum_RsSearchForSale2 = 0;
    if (isset($_GET['pageNum_RsSearchForSale2'])) {
      $pageNum_RsSearchForSale2 = $_GET['pageNum_RsSearchForSale2'];
    $startRow_RsSearchForSale2 = $pageNum_RsSearchForSale2 * $maxRows_RsSearchForSale2;
    $varloc2_RsSearchForSale2 = "mpl";
    if (isset($_POST['location'])) {
      $varloc2_RsSearchForSale2 = $_POST['location'];
    $varprice2_RsSearchForSale2 = "p9";
    if (isset($_POST['price'])) {
      $varprice2_RsSearchForSale2 = $_POST['price'];
    $vartype2_RsSearchForSale2 = "vil";
    if (isset($_POST['type'])) {
      $vartype2_RsSearchForSale2 = $_POST['type'];
    $varbed2_RsSearchForSale2 = "b5";
    if (isset($_POST['beds'])) {
      $varbed2_RsSearchForSale2 = $_POST['beds'];
    switch (true) {
    case ($varloc2_RsSearchForSale2 == 'zzz'):
    case ($varprice2_RsSearchForSale2 == 'zzz'):
    case ($vartype2_RsSearchForSale2 == 'zzz'):
    case ($varbed2_RsSearchForSale2 == 'zzz'):
    mysql_select_db($database_propertypages, $propertypages);
    $query_RsSearchForSale2 = sprintf("SELECT DISTINCT trueprice,`desc`, `propid`, `bathrooms`, `photo1`, locationtable.loc, typetable.style, bedtable.`number` FROM detailstable JOIN locationtable ON detailstable.location=locationtable.locid JOIN typetable ON detailstable.type=typetable.typeid JOIN pricetable ON detailstable.price=pricetable.priceid JOIN bedtable ON detailstable.beds=bedtable.bedid WHERE (location=%s AND price=%s AND type=%s) OR (location=%s AND price=%s AND beds=%s) OR (location=%s AND type=%s AND beds=%s) OR (price=%s AND type=%s AND beds=%s) ORDER BY detailstable.trueprice ASC", GetSQLValueString($varloc2_RsSearchForSale2, "text"),GetSQLValueString($varprice2_RsSearchForSale2, "text"),GetSQLValueString($vartype2_RsSearchForSale2, "text"),GetSQLValueString($varloc2_RsSearchForSale2, "text"),GetSQLValueString($varprice2_RsSearchForSale2, "text"),GetSQLValueString($varbed2_RsSearchForSale2, "text"),GetSQLValueString($varloc2_RsSearchForSale2, "text"),GetSQLValueString($vartype2_RsSearchForSale2, "text"),GetSQLValueString($varbed2_RsSearchForSale2, "text"),GetSQLValueString($varprice2_RsSearchForSale2, "text"),GetSQLValueString($vartype2_RsSearchForSale2, "text"),GetSQLValueString($varbed2_RsSearchForSale2, "text"));
    $query_limit_RsSearchForSale2 = sprintf("%s LIMIT %d, %d", $query_RsSearchForSale2, $startRow_RsSearchForSale2, $maxRows_RsSearchForSale2);
    $RsSearchForSale2 = mysql_query($query_limit_RsSearchForSale2, $propertypages) or die(mysql_error());
    $row_RsSearchForSale2 = mysql_fetch_assoc($RsSearchForSale2);
    if (isset($_GET['totalRows_RsSearchForSale2'])) {
      $totalRows_RsSearchForSale2 = $_GET['totalRows_RsSearchForSale2'];
    } else {
      $all_RsSearchForSale2 = mysql_query($query_RsSearchForSale2);
      $totalRows_RsSearchForSale2 = mysql_num_rows($all_RsSearchForSale2);
    $totalPages_RsSearchForSale2 = ceil($totalRows_RsSearchForSale2/$maxRows_RsSearchForSale2)-1;
    $queryString_RsSearchForSale2 = "";
    if (!empty($_SERVER['QUERY_STRING'])) {
      $params = explode("&", $_SERVER['QUERY_STRING']);
      $newParams = array();
      foreach ($params as $param) {
        if (stristr($param, "pageNum_RsSearchForSale2") == false &&
            stristr($param, "totalRows_RsSearchForSale2") == false) {
          array_push($newParams, $param);
      if (count($newParams) != 0) {
        $queryString_RsSearchForSale2 = "&" . htmlentities(implode("&", $newParams));
    $queryString_RsSearchForSale2 = sprintf("&totalRows_RsSearchForSale2=%d%s", $totalRows_RsSearchForSale2, $queryString_RsSearchForSale2);
    }?>
    <?php require_once('Connections/propertypages.php'); ?>
    <?php if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
      $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;   
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      return $theValue;
    $currentPage = $_SERVER["PHP_SELF"];
    $maxRows_RsSearchForSale3 = 10;
    $pageNum_RsSearchForSale3 = 0;
    if (isset($_GET['pageNum_RsSearchForSale3'])) {
      $pageNum_RsSearchForSale3 = $_GET['pageNum_RsSearchForSale3'];
    $startRow_RsSearchForSale3 = $pageNum_RsSearchForSale3 * $maxRows_RsSearchForSale3;
    $varloc3_RsSearchForSale3 = "mpl";
    if (isset($_POST['location'])) {
      $varloc3_RsSearchForSale3 = $_POST['location'];
    $varprice3_RsSearchForSale3 = "p9";
    if (isset($_POST['price'])) {
      $varprice3_RsSearchForSale3 = $_POST['price'];
    $vartype3_RsSearchForSale3 = "vil";
    if (isset($_POST['type'])) {
      $vartype3_RsSearchForSale3 = $_POST['type'];
    $varbed3_RsSearchForSale3 = "b5";
    if (isset($_POST['beds'])) {
      $varbed3_RsSearchForSale3 = $_POST['beds'];
    switch (true) {
    case ($varloc3_RsSearchForSale3 == 'zzz' && $varprice3_RsSearchForSale3 == 'zzz'):
    case ($varprice3_RsSearchForSale3 == 'zzz' && $vartype3_RsSearchForSale3 == 'zzz'):
    case ($vartype3_RsSearchForSale3 == 'zzz' && $varbed3_RsSearchForSale3 == 'zzz' ):
    case ($varbed3_RsSearchForSale3 == 'zzz' && $varloc3_RsSearchForSale3 == 'zzz'):
    case ($varloc3_RsSearchForSale3 == 'zzz' && $vartype3_RsSearchForSale3 == 'zzz'):
    case ($varprice3_RsSearchForSale3 == 'zzz' && $varbed3_RsSearchForSale3 == 'zzz'):
    mysql_select_db($database_propertypages, $propertypages);
    $query_RsSearchForSale3 = sprintf("SELECT DISTINCT trueprice,`desc`, `propid`, `bathrooms`, `photo1`, locationtable.loc, typetable.style, bedtable.`number` FROM detailstable JOIN locationtable ON detailstable.location=locationtable.locid JOIN typetable ON detailstable.type=typetable.typeid JOIN pricetable ON detailstable.price=pricetable.priceid JOIN bedtable ON detailstable.beds=bedtable.bedid WHERE (location=%s AND price=%s) OR (location=%s AND  type=%s) OR (location=%s AND beds=%s) OR ( type=%s AND beds=%s) OR (price=%s AND type=%s) OR (price=%s AND beds=%s) ORDER BY detailstable.trueprice ASC", GetSQLValueString($varloc3_RsSearchForSale3, "text"),GetSQLValueString($varprice3_RsSearchForSale3, "text"),GetSQLValueString($varloc3_RsSearchForSale3, "text"),GetSQLValueString($vartype3_RsSearchForSale3, "text"),GetSQLValueString($varloc3_RsSearchForSale3, "text"),GetSQLValueString($varbed3_RsSearchForSale3, "text"),GetSQLValueString($vartype3_RsSearchForSale3, "text"),GetSQLValueString($varbed3_RsSearchForSale3, "text"),GetSQLValueString($varprice3_RsSearchForSale3, "text"),GetSQLValueString($vartype3_RsSearchForSale3, "text"),GetSQLValueString($varprice3_RsSearchForSale3, "text"),GetSQLValueString($varbed3_RsSearchForSale3, "text"));
    $query_limit_RsSearchForSale3 = sprintf("%s LIMIT %d, %d", $query_RsSearchForSale3, $startRow_RsSearchForSale3, $maxRows_RsSearchForSale3);
    $RsSearchForSale3 = mysql_query($query_limit_RsSearchForSale3, $propertypages) or die(mysql_error());
    $row_RsSearchForSale3 = mysql_fetch_assoc($RsSearchForSale3);
    if (isset($_GET['totalRows_RsSearchForSale3'])) {
      $totalRows_RsSearchForSale3 = $_GET['totalRows_RsSearchForSale3'];
    } else {
      $all_RsSearchForSale3 = mysql_query($query_RsSearchForSale3);
      $totalRows_RsSearchForSale3 = mysql_num_rows($all_RsSearchForSale3);
    $totalPages_RsSearchForSale3 = ceil($totalRows_RsSearchForSale3/$maxRows_RsSearchForSale3)-1;
    $queryString_RsSearchForSale3 = "";
    if (!empty($_SERVER['QUERY_STRING'])) {
      $params = explode("&", $_SERVER['QUERY_STRING']);
      $newParams = array();
      foreach ($params as $param) {
        if (stristr($param, "pageNum_RsSearchForSale3") == false &&
            stristr($param, "totalRows_RsSearchForSale3") == false) {
          array_push($newParams, $param);
      if (count($newParams) != 0) {
        $queryString_RsSearchForSale3 = "&" . htmlentities(implode("&", $newParams));
    $queryString_RsSearchForSale3 = sprintf("&totalRows_RsSearchForSale3=%d%s", $totalRows_RsSearchForSale3, $queryString_RsSearchForSale3);
    } ?>
    <?php require_once('Connections/propertypages.php'); ?>
    <?php if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
      $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;   
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      return $theValue;
    $currentPage = $_SERVER["PHP_SELF"];
    $maxRows_RsSearchForSale4 = 10;
    $pageNum_RsSearchForSale4 = 0;
    if (isset($_GET['pageNum_RsSearchForSale4'])) {
      $pageNum_RsSearchForSale4 = $_GET['pageNum_RsSearchForSale4'];
    $startRow_RsSearchForSale4 = $pageNum_RsSearchForSale4 * $maxRows_RsSearchForSale4;
    $varloc4_RsSearchForSale4 = "mpl";
    if (isset($_POST['location'])) {
      $varloc4_RsSearchForSale4 = $_POST['location'];
    $vartype4_RsSearchForSale4 = "vil";
    if (isset($_POST['type'])) {
      $vartype4_RsSearchForSale4 = $_POST['type'];
    $varprice4_RsSearchForSale4 = "p9";
    if (isset($_POST['price'])) {
      $varprice4_RsSearchForSale4 = $_POST['price'];
    $varbed4_RsSearchForSale4 = "b5";
    if (isset($_POST['beds'])) {
      $varbed4_RsSearchForSale4 = $_POST['beds'];
    switch (true) {
    case ($varloc4_RsSearchForSale4 == 'zzz' && $vartype4_RsSearchForSale4 =='zzz' && $varprice4_RsSearchForSale4 == 'zzz'):
    case ($varloc4_RsSearchForSale4 == 'zzz' && $varprice4_RsSearchForSale4 =='zzz' && $varbed4_RsSearchForSale4 == 'zzz'):
    case ($varloc4_RsSearchForSale4 == 'zzz' && $varbed4_RsSearchForSale4 =='zzz' && $vartype4_RsSearchForSale4 == 'zzz'):
    case ($varbed4_RsSearchForSale4 == 'zzz' && $vartype4_RsSearchForSale4 =='zzz' && $varprice4_RsSearchForSale4 == 'zzz'):
    mysql_select_db($database_propertypages, $propertypages);
    $query_RsSearchForSale4 = sprintf("SELECT DISTINCT trueprice,`desc`, `propid`, `bathrooms`, `photo1`, locationtable.loc, typetable.style, bedtable.`number` FROM detailstable JOIN locationtable ON detailstable.location=locationtable.locid JOIN typetable ON detailstable.type=typetable.typeid JOIN pricetable ON detailstable.price=pricetable.priceid JOIN bedtable ON detailstable.beds=bedtable.bedid WHERE location=%s OR price=%s OR type=%s OR beds=%s ORDER BY detailstable.trueprice ASC", GetSQLValueString($varloc4_RsSearchForSale4, "text"),GetSQLValueString($varprice4_RsSearchForSale4, "text"),GetSQLValueString($vartype4_RsSearchForSale4, "text"),GetSQLValueString($varbed4_RsSearchForSale4, "text"));
    $query_limit_RsSearchForSale4 = sprintf("%s LIMIT %d, %d", $query_RsSearchForSale4, $startRow_RsSearchForSale4, $maxRows_RsSearchForSale4);
    $RsSearchForSale4 = mysql_query($query_limit_RsSearchForSale4, $propertypages) or die(mysql_error());
    $row_RsSearchForSale4 = mysql_fetch_assoc($RsSearchForSale4);
    if (isset($_GET['totalRows_RsSearchForSale4'])) {
      $totalRows_RsSearchForSale4 = $_GET['totalRows_RsSearchForSale4'];
    } else {
      $all_RsSearchForSale4 = mysql_query($query_RsSearchForSale4);
      $totalRows_RsSearchForSale4 = mysql_num_rows($all_RsSearchForSale4);
    $totalPages_RsSearchForSale4 = ceil($totalRows_RsSearchForSale4/$maxRows_RsSearchForSale4)-1;
    $queryString_RsSearchForSale4 = "";
    if (!empty($_SERVER['QUERY_STRING'])) {
      $params = explode("&", $_SERVER['QUERY_STRING']);
      $newParams = array();
      foreach ($params as $param) {
        if (stristr($param, "pageNum_RsSearchForSale4") == false &&
            stristr($param, "totalRows_RsSearchForSale4") == false) {
          array_push($newParams, $param);
      if (count($newParams) != 0) {
        $queryString_RsSearchForSale4 = "&" . htmlentities(implode("&", $newParams));
    $queryString_RsSearchForSale4 = sprintf("&totalRows_RsSearchForSale4=%d%s", $totalRows_RsSearchForSale4, $queryString_RsSearchForSale4);
    }?>

    Hi David,
    Thank you for your reply and patience, we are getting closer in spite of me!
    Of course i needed to change the name of the recordset, i did that the first time i did it (when i got the error), the when i re did it i forgot, in my defense i was also trying to get a full understanding of the code using the W3Schools php reference and writing by the side of the code on a piece of paper what it meant in English.
    Anyway after re doing the code correctly it still displayed all the records of my database but i realised that was because i was POSTING from the search form and when i changed it to the GET method I now get results when all 4  list menus are selected from and the paging works. After reading about the POST / GET method i chose the POST option, is the GET method a better option in my circumstance?
    On my site now if the user selects from 1,2 or 3 of the menus rather than selecting the relevant records it displays the NO RESULT page, I would like my users to be able to select from all of the menus or ANY combination of the menus and find exact results for their search, for example if they only select a location and a price i want it display all records that match that location and price with any number of bedrooms and any Type of property: Perhaps this is due to how my list menus are set up, for each menu the first Item label is Location (or Beds or Type or Price) and the value i have left blank which i believe means that it will use the item label as the value, the second Item label for all menus is Any and again the value has been left blank. All other item labels have values relevant to database records.  
    I do look forward to your reply and cannot thank you enough for following this through with me, please continue to bare with me just a little more,
    best regards
    Tessimon
    Date: Wed, 11 Nov 2009 06:56:24 -0700
    From: [email protected]
    To: [email protected]
    Subject: Help with message please:  Warning: mysql_free_result() expects parameter 1 to be resource, null given in...... line
    You're not adding the WHERE clause to the SQL query. My example code uses $query_search. You need to change that variable to match the name of your recordset, i.e. $query_RSsearchforsale.
    Moreover, the WHERE clause needs to go before ORDER BY.
    $query_RSsearchforsale = "SELECT trueprice,`desc`, `propid`, `bathrooms`, `location`, `type`, `price`, `beds`, `photo1`, locationtable.loc, typetable.style, bedtable.`number` FROM detailstable JOIN locationtable ON detailstable.location=locationtable.locid JOIN typetable ON detailstable.type=typetable.typeid JOIN pricetable ON detailstable.price=pricetable.priceid JOIN bedtable ON detailstable.beds=bedtable.bedid ";
    // Set a flag to indicate whether the query has a WHERE clause
    $where = false;
    // Loop through the associatiave array of expected search values
    foreach ($expected as $var => $type) {
      if (isset($_GET[$var])) {
        $value = trim(urldecode($_GET[$var]));
        if (!empty($value)) {
          // Check if the value begins with > or <
          // If so, use it as the operator, and extract the value
          if ($value[0] == '>' || $value[0] == '<') {
            $operator = $value[0];
            $value = ltrim(substr($value, 1));
          } elseif (strtolower($type) != 'like') {
            $operator = '=';
          // Check if the WHERE clause has been added yet
          if ($where) {
            $query_RSsearchforsale .= ' AND ';
          } else {
            $query_RSsearchforsale .= ' WHERE ';
            $where = true;
          // Build the SQL query using the right operator and data type
          $type = strtolower($type);
          switch($type) {
            case 'like':
              $query_RSsearchforsale .= "`$var` LIKE " . GetSQLValueString('%' .
    $value . '%', "text");
              break;
            case 'int':
            case 'double':
            case 'date':
              $query_RSsearchforsale .= "`$var` $operator " .
    GetSQLValueString($value, "$type");
              break;
            default:
            $query_RSsearchforsale .= "`$var` = " . GetSQLValueString($value,
    "$type");
    $query_RSsearchforsale .= ' ORDER BY detailstable.trueprice ASC';
    >

  • Sales Order Eroor Message

    Hi friends,
    Here my client requirement is needed a error message while creating sales order with reference to expired quotation, but sap standard only giving warning message, but needed hard stop, pls find me a way to get error message , Thanks.
    Nina.T

    Hi Naina,
    Can you please let us know whatu2019s the message number you getting.
    Please go to Transaction u2013 OVAH (System Message), go to your message Number and change System message category from u201CWu201D to u201CEu201D.
    Try to create Sales Order again and let us know whether your problem get resolved or not.
    Cheers !!!!
    Imzo

  • You cannot make an assignment to make-to-order stock - Message no. CO684

    Hi,
    During conversion of planned order to production order in variant configuration scenario I am getting following error message....
    You cannot make an assignment to make-to-order stock
    Message no. CO684
    Diagnosis
    The component cannot be allocated to an individual stock because make-to-order production and engineer-to-order production cannot be executed with this order.
    A possible cause is that you are trying to create an order with reference to a sales-order/project, where an account assignment to a sales order/project is not allowed in the settlement profile that is assigned to the chosen order type. This is inconsistent.
    System response
    The following responses are possible:
    Order processing is canceled.
    The system resets the special stock indicator back to the original value.
    Procedure
    Choose another order type.
    Any ideas or suggestions to correct this issue..
    Pavan

    Hi Pavan,
    This is one of the most common problem comes during MTO execution.And the real problem is massage no itself because you will get the same massage no. for many reason and that's it becomes more difficult to find out root cause.
    Check below threads and settings,
    - Order type for MTO is not maintain in Production scheduling Profile.Go OPKP or CORY and maintain Order type for MTO to it.
    - [Thread 1|Error Message while cretaing a Process Order;
    - [Thread 2|Error in Variant Configuration CO684;
    - [Thread 3|error information when covert plan order to production order;
    - [Thread 4|You cannot make an assignment to make-to-order stock;
    Regards,
    Dhaval

  • Macbook froze while online. hard shutdown. when it restarted, an error message appeared saying finder shut down unexpectedly containing a message box with a long list of technical jibberish.  after clicking OK that it would send an error report to Apple,

    macbook froze while online. hard shutdown. when it restarted, an error message appeared saying finder shut down unexpectedly containing a message box with a long list of technical jibberish.  after clicking OK that it would send an error report to Apple, the same error message box appeared again and again every time OK was clicked.  Now the macbook will not turn on at all

    If you're able to boot, launch the Console application in any of the following ways:
    ☞ Enter the first few letters of its name into a Spotlight search. Select it in the results (it should be at the top.)
    ☞ In the Finder, select Go ▹ Utilities from the menu bar, or press the key combination shift-command-U. The application is in the folder that opens.
    ☞ If you’re running Mac OS X 10.7 or later, open LaunchPad. Click Utilities, then Console in the page that opens.
    Select the most recent panic log under System Diagnostic Reports. Post the contents — the text, please, not a screenshot. In the interest of privacy, I suggest you edit out the “Anonymous UUID,” a long string of letters, numbers, and dashes in the header and body of the report, if it’s present (it may not be.) Please don't post "shutdownStall" or "hang" reports.
    If you can't boot in the usual way, try a safe boot. The instructions provided by Apple are as follows:
    Be sure your Mac is shut down.
    Press the power button.
    Immediately after you hear the startup tone, hold the Shift key. The Shift key should be held as soon as possible after the startup tone, but not before the tone.
    Release the Shift key when you see the gray Apple icon and the progress indicator (looks like a spinning gear).
    During startup, you’ll see a progress bar, and then the login screen, which appears even if you normally log in automatically. You must know your login password in order to log in. If you’ve forgotten the password, you will need to reset it before you begin.
    Safe mode is slower than normal, and some things won’t work at all.
    Note: If FileVault is enabled under Mac OS X 10.7 or later, you can’t boot in safe mode.

Maybe you are looking for

  • Errors:Installing Oracle Portal, Forms, Reports and Discoverer on Win7

    Someone can help me? I installed Oracle Portal, Forms, Reports and Discoverer on Win7. I have install: jdk 64bit Oracle db 11g (64bit) Oracle Weblogic 1033 (wls1033_generic.jar) Oracle Portal, Forms, Reports and Discoverer (ofm_pfrd_win_11.1.1.2.0_64

  • File Adapter Error Handling from Batch job

    Dear all, I'd like to handle error information by batch job process. However I can't find out the error flag from the file adapter. My XI setting is below. 1.FIle to File conversinn by using File adapter 2.Async setting 3.Not use BPM Anyway,we only w

  • Working with HD mp4's

    Hey Everyone: I am trying to cut up a mp4 file (HD quality) and when I export out of FCE I always comes out looking like crud. The files specs are: Dimensions: 1258x720 Codecs: H.264, AAC, Hint, MPEG-4, ODSM, MPEG-4 SDSM. Channel Count: 2 Total Bit R

  • Referenced library

    Hi all, I'm trying to use a referenced library system, so when importing in a library I leave the photos on external hard disks (Store files: In their current location). In Aperture preferences I have not checked "New projects automatically generate

  • ECCS - Adding Profit Center to Company Code Consolidation

    Hello Gurus, We use ECCS for our consolidation. We do only Legal consolidation and we also use Functional Area as a sub-item category for all the IS accounts. We are now trying to add Profit Center as one of the attributes. Initially, we planned to u