HTTP GET Probe Monitoring

I am trying to monitor our web servers from our load balancer with an HTT probe  This probe keeps failing.  Its monitoring a Windows sharepoint server, and I can get to the test page with my credentials, but the Probe seemingly cant pull it.  Is there something in here I am doing wrong?  I have attached a screen shot of the probe for reference. I keep getting probe failed.  Ive tried a lot of different permutations of this probe config with no success.   Any help with anyone who has done this before would be awesome

ACE-4710-DR/Admin# sh probe HTTP-GET  detail
 probe       : HTTP-GET
 type        : HTTP
 state       : ACTIVE
 description : Test for I-am-alive.html
   port      : 80      address     : 0.0.0.0         addr type  : -
   interval  : 15      pass intvl  : 60              pass count : 3
   fail count: 3       recv timeout: 10
   http method      : GET
   http url         : http://aspenintranet/PSC/Pages/I-am-alive.html
   conn termination : GRACEFUL
   expect offset    : 0         , open timeout     : 1
   regex cache-len  : 0
   expect regex     : -
   send data        : -
                ------------------ probe results ------------------
   associations ip-address      port  porttype probes   failed   passed   health
   ------------ ---------------+-----+--------+--------+--------+--------+------
   rserver     : 10.22.5.100
                10.22.5.100     80    --       2970     2970     0        FAILED
   Socket state        : CLOSED
   No. Passed states   : 0         No. Failed states : 1
   No. Probes skipped  : 0         Last status code  : 401
   No. Out of Sockets  : 0         No. Internal error: 0
   Last disconnect err : Received invalid status code
   Last probe time     : Fri May 23 11:33:29 2014
   Last fail time      : Wed May 21 10:04:45 2014
   Last active time    : Never

Similar Messages

  • ACE HTTPS GET PROBE

    I have been asked to set up a HTTPS probe with a get request, the encryption is done between the connections on the servers, IBM Datapower Websphere servers, will i still be able to set up a HTTPS get probe and also how do i configure it?
    Thanks
    Nouraj

    Hi Nouraj,
    Yes, actually its the same command used with HTTP probes, Ex:
    probe https ABMJ-test
      request method get url /test.html
    Best regards,
    Ahmad

  • ACE http health probes - best practice for interval and passdetect interval?

    Hi,
    Is there a recommended standard for http health probes in terms of interval and passdetect interval timings, i.e. should the passdetect interval always be less than the interval or visa versa? Can a http probe be 'mis-configured', i.e. return a 'false positive' by configuring an interval timeout thats 'incompatible' with the device it's polling?
    I have a http probe for a serverfarm consisting of two Apache http servers and get intermittent 'server reply timeout' probe failures. I'm keen to ensure that the configuration of the probe isn't at fault so I can be confident that a failed probe indicates a problem with the server and not my configuration.
    The probe is currently configured as below:-
    probe http http-apache
      interval 30
      passdetect interval 15
      passdetect count 6
      request method get url /cs/images/ACE.html
      expect status 200 304
    Any advice on the subject woud be gratefully received.
    thanks
    Matthew

    Hi Gilles,
    Thanks for the advice. In another dicussion (found here https://supportforums.cisco.com/message/462397#462397) a poster has stated that:-
    "(The) "Probe interval" should always be less then (open+recieve) timeout  value. Default open & receive timeouts are 10 seconds."
    Are you able to advise on whether the above is correct and if so, why? I currently have an interval value of 30 that obviously goes against the advice above (which I've interpretted to mean that if you leave the open & receive timeouts at their default settings your probe interval should be less than 20 seconds?).
    thanks
    Matthew

  • HTTP GET/POST Queue

    Hello,
    I was trying to Performance Monitor Tool for measuring the performance of
    WebLogic 5.1 Server which is hosting
    my Web Application. My interest was to primarily record the HTTP GET and
    POST requests processed by the WebServer and the number of pending HTPP
    requests etc. But the Performance Monitor is not able to capture this info.
    It can find the information for IIS Server running on my machine but not for
    WebLogic server running on Port 80. Is there any other tool which can be
    used
    for obtaining the data mentioned above
    Thanks
    Sandeep
    This e-mail communication and any attachments are privileged and
    confidential and intended only for the use of the recipients named above.
    If you are not the intended recipient, please do not review, disclose,
    disseminate, distribute or copy this e-mail and attachments. If you have
    received this communication in error, please notify the sender immediately
    by email or telephone at +91-20-2906286.

    By Performance Monitor Tool I meant the perfmon.exe which is available with
    the WINNT installation.
    Sandeep
    "Sandeep Rajpathak" <[email protected]> wrote in message
    news:[email protected]..
    Hello,
    I was trying to Performance Monitor Tool for measuring the performance of
    WebLogic 5.1 Server which is hosting
    my Web Application. My interest was to primarily record the HTTP GET and
    POST requests processed by the WebServer and the number of pending HTPP
    requests etc. But the Performance Monitor is not able to capture thisinfo.
    It can find the information for IIS Server running on my machine but notfor
    WebLogic server running on Port 80. Is there any other tool which can be
    used
    for obtaining the data mentioned above
    Thanks
    Sandeep

  • VBA API: How to get the monitor number?

    Hello,
    I have written
    an Excel application which
    controls an external application
    (making inputs,
    reads out the window,
    etc.).
    I use a lot of API functions, e.g. as in the code from thisarticle:
    https://support.microsoft.com/en-us/kb/194578?wa=wsignin1.0
    A basic
    function of my application is
    to distinguish between windows
    that have the same title
    but are on different monitors.
    In my windows (and NVIDIA) settings the left monitor is 1 and the right monitor is 2.
    In the past I have this routine to "identify" the monitor number from a window handle:
    Function GetWindowMonitor(ByVal hWnd As Long) As Integer
    Dim hMonitor As Long, MI As MONITORINFO, hM
    hMonitor = MonitorFromWindow(hWnd, MONITOR_DEFAULTTONEAREST)
    MI.cbSize = Len(MI)
    GetMonitorInfo hMonitor, MI
    Set mMonitor = New Collection
    EnumDisplayMonitors ByVal 0&, ByVal 0&, AddressOf MonitorEnumProc, ByVal 0&
    For Each hM In mMonitor
    GetWindowMonitor = GetWindowMonitor + 1
    If hM = hMonitor Then Exit Function
    Next
    GetWindowMonitor = 0
    End Function
    But last week I got a new graphic card and now this obvious stupid function fails, because EnumDisplayMonitors delivers the 2nd monitor first and then the 1st
    monitor.
    Long talk, short question: Is there any way to get the real monitor numbers as they are shown inside the windows settings?
    Andreas.

    When you need to identify monitors, call CreateDC with "DISPLAY" as the driver name and pass monitor name as the device name. Then you can draw a number on the result HDC.
    I can not draw that number and I can not set an identifier. As I said in my last post:
    I share this tool with my colleagues at work.
    Okay... CreateDC is an idea... as I've read at MSDN I can call EnumDisplayMonitors with a DC to get informations about the monitor, so I tried the code below, but it doesn't work.
    EnumDisplayMonitors does not call my MonitorEnumProc when I call it with a DC.
    Do I something wrong? Do I misunderstood the MSDN article? Is that not possible? Can you confirm that?
    Andreas.
    Option Explicit
    Private Declare Function GetForegroundWindow Lib "user32" () As Long
    Private Type DISPLAY_DEVICE
    cb As Long
    DeviceName As String * 32
    DeviceString As String * 128
    StateFlags As Long
    DeviceID As String * 128
    DeviceKey As String * 128
    End Type
    Private Const DISPLAY_DEVICE_MIRRORING_DRIVER = &H8
    Private Declare Function EnumDisplayDevicesS Lib "user32" Alias "EnumDisplayDevicesA" ( _
    ByVal DeviceName As String, ByVal iDevNum As Long, lpDisplayDevice As _
    DISPLAY_DEVICE, ByVal dwFlags As Long) As Long
    Private Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" ( _
    ByVal lpszDriver As String, ByVal lpszDevice As String, ByVal lpszOutput As Long, _
    lpInitData As Any) As Long
    Private Declare Function DeleteDC Lib "gdi32" (ByVal hDC As Long) As Long
    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type
    Private Declare Function GetWindowRect Lib "user32" ( _
    ByVal hWnd As Long, lpRect As RECT) As Long
    Private Declare Function EnumDisplayMonitors Lib "user32.dll" ( _
    ByVal hDC As Long, ByRef lprcClip As Any, ByVal lpfnEnum As Long, _
    ByVal dwData As Long) As Long
    Private Type MONITORINFO
    cbSize As Long
    rcMonitor As RECT
    rcWork As RECT
    dwFlags As Long
    End Type
    Private Declare Function GetMonitorInfo Lib "user32.dll" Alias "GetMonitorInfoA" ( _
    ByVal hMonitor As Long, ByRef lpmi As MONITORINFO) As Long
    Private Function MonitorEnumProc(ByVal hMonitor As Long, ByVal hdcMonitor As Long, _
    lprcMonitor As RECT, ByVal dwData As Long) As Long
    Dim MI As MONITORINFO
    Debug.Print "Monitor " & hMonitor
    GetMonitorInfo hMonitor, MI
    With MI.rcMonitor
    Debug.Print "Left", "Top", "Right", "Bottom"
    Debug.Print .Left, .Top, .Right, .Bottom
    End With
    'Continue enumeration
    MonitorEnumProc = 1
    End Function
    Function JustNumbers(ByVal What As String) As String
    'Return only numbers from What (by Rick Rothstein)
    Dim i As Long, j As Long, Digit As String
    For i = 1 To Len(What)
    Digit = Mid$(What, i, 1)
    If Digit Like "#" Then
    j = j + 1
    Mid$(What, j, 1) = Digit
    End If
    Next
    JustNumbers = Left$(What, j)
    End Function
    Sub Main()
    Dim DD As DISPLAY_DEVICE
    Dim DDevice
    Dim DDevices As New Collection
    Dim DMonitor
    Dim DMonitors As New Collection
    Dim i As Long, k As Long
    Dim hDC As Long
    Dim DrvName As String, DevName As String
    Dim hWnd As Long, hRECT As RECT
    'Get our window handle
    hWnd = GetForegroundWindow
    'Now I want to know if this window is located on monitor 1 or 2 (or both)
    'Get the coordinates of the window
    GetWindowRect hWnd, hRECT
    With hRECT
    Debug.Print "Window:"
    Debug.Print "Left", "Top", "Right", "Bottom"
    Debug.Print .Left, .Top, .Right, .Bottom
    End With
    'Get the device drivers
    DD.cb = Len(DD)
    i = 0
    Do While EnumDisplayDevicesS(vbNullString, i, DD, 0&) <> 0
    If (DD.StateFlags And DISPLAY_DEVICE_MIRRORING_DRIVER) = 0 Then
    k = InStr(DD.DeviceName, vbNullChar)
    DDevices.Add Left(DD.DeviceName, k - 1)
    End If
    i = i + 1
    Loop
    '2. Get the monitors on each driver
    For Each DDevice In DDevices
    i = 0
    Do While EnumDisplayDevicesS(DDevice & vbNullChar, i, DD, 0&) <> 0
    k = InStr(DD.DeviceName, vbNullChar)
    DMonitors.Add Left(DD.DeviceName, k - 1)
    i = i + 1
    Loop
    Next
    'Create a DC for each monitor and get the coordinates
    For Each DMonitor In DMonitors
    i = InStrRev(DMonitor, "\")
    '"\\.\DISPLAY1"
    DrvName = Left(DMonitor, i - 1) & vbNullChar
    '"Monitor0"
    DevName = Mid(DMonitor, i + 1) & vbNullChar
    hDC = CreateDC(DrvName, DevName, 0, ByVal 0&)
    Debug.Print DrvName, DevName, hDC
    'The driver name is the monitor number!?
    EnumDisplayMonitors hDC, ByVal 0&, AddressOf MonitorEnumProc, Val(JustNumbers(DrvName))
    DeleteDC hDC
    Next
    End Sub

  • HTTP GET only works once

    Web UI Builder:
    I have a device that responds to HTTP GET messages.
    I made a simple vi that uses the HTTP GET String function connected to a string constant and WireShark to monitor Ethernet traffic.
    When the vi is first run an HTTP message is sent and replied to.
    If the vi is run again the message is not transmitted.
    If the HTTP GET message is changed the new message will be transmitted. But not twice.
    If LabVIEW Web UI Builder is closed and restarted the message will again be sent just once when run.
    Why is the message only being sent once? It's like all outgoing messages are being tracked and only sent once.

    I think this is standard (but not always desirable) behavior of the networking stack that Web UI Builder uses. (On Windows, it's basically the built in/  Internet Explorer networking stack). After the first GET request with the same URL, if the server doesn't send no-cache headers, a cached result will be returned.
    If you control the server that you're connecting to (and can add HTTP headers), try adding a no-cache header to the GET response. ("Cache-Control: no-cache" is the first one I'd try).
    If you don't control the server you're connecting to / that doesn't work, another workaround is to append a query string parameter with a random number or timestamp. With this approach, the GET URL is always changing, so the caching behavior is disabled and the request should always go to the server.
    (Something like this appended to the end of the URL:
    or, "&n=[timeInTicks]" if you're already using other query parameters)

  • High speed http GET help?

    Hey I, I have a machine hooked up via RS232 to a standalone computer that has a C++ program that takes the machine information, converts it to xml, and posts it to the tcp/ip host.  I am trying to stream that data to network computer using labview and HTTP GET command and writing the values to binary file to be opened in excel.  My program works, but its only sampling twice a second and I assume that is because I have everything inside the loop and its taking too long to run through the program.  I was wondering how could I accomplish this faster because I need to sample like every 10-100ms.  Something in that range.  This program will be used for monitoring, but also for analysis so that is why the sampling speed needs to be faster.
    I am completely new to programming and labview and I could use some real detailed help on this.  Ive attached my current program.  Please, any help or suggestions would be greatly appreciated.  I am working on a deadline and its taking me forever.  Thank you guys for your time.
    Attachments:
    XML-RPC loop.vi ‏96 KB

    Great job on the Producer-Consumer conversion! It looks like you put forth a good deal of effort and understand the general concept.
    I mislead you when I said "Consider creating a SubVI for each of the snippets that were copy-and-pasted in your Data processing". What I meant was since each of the functions was so much alike, create ONE SubVI, then use multiple instances of that ONE SubVI. Practices such as creating reusable SubVI's promotes scalability and maintainability, yet Copy-and-Pasting code backs you into the corner of "technical debt" as the project scope increases. On inspection, it would just be better to process your data in a For Loop without needed a SubVI at all. Consider the following:
    The efficiency of this code is not impressive, but it's maintains the spirit of the code you already have written, for the purpose of comparing what you have written to a more scalable solution.
    Also, rather than having two 'Stop' buttons, you can stop the bottom loop by wiring the Error Out from the Dequeue directly into the Loop Stop Terminal. When the top loop exits from pressing the stop button, it will destroy the queue after exiting the loop, causing a (benign) error on the Dequeue in the bottom loop, causing that loop to cleanly exit. All of the File Write business should be in the No Error case of a case structure, so that it doesn't execute on this (benign and expected) error condition.
    Finally, when you upload your top level VI, ensure to upload SubVI's as well. They show up as "?" when I open the main VI. I am especially interest in the VI you have named "TCP Read All.vi", because this is probably the culprit for your slow loop times.
    a.lia-user-name-link[href="/t5/user/viewprofilepage/user-id/88938"] {color: black;} a.lia-user-name-link[href="/t5/user/viewprofilepage/user-id/88938"]:after {content: '';} .jrd-sig {height: 80px; overflow: visible;} .jrd-sig-deploy {float:left; opacity:0.2;} .jrd-sig-img {float:right; opacity:0.2;} .jrd-sig-img:hover {opacity:0.8;} .jrd-sig-deploy:hover {opacity:0.8;}

  • ACE keep probing real servers using "https get 302"

    Hi all,
    I got one problem with cisco ACE in my company. Currently, two ACE appliances are working as HA redundancy. Previously I enabled some https and http probing using get 302 for some servers and services. But then I was told to remove all https or http probing, and instead use tcp port 443 and 80. After that, one of the serverfarm (server groups) is receiving https get 302 and I already checked in the monitoring and see whether there's any https probing regarding the respected real servers. But I could not find any. Even I disable all probing to that serverfarm, all the server members still receiving https get 302. Is this behavior a bug?
    The ACE version is A3(2.1). And the HA status is on standby cold. Can standby cold cause this kind of trouble?

    Hi Daniel,
    I just corrected the cert problem and made the state peer into standby hot. But still it still keep probing the get 302. And then I tried to restart both ACEs. The first step is to restart the second ACE (standby) and then switched over all context to the second one. The problem is that when I made the second one to be active, some services were not working, especially the ones with ssl terminated in ACE. I'm pretty sure that both ACEs were in sync.
    Any idea what is the problem?

  • CSM HTTP Health Probe

    Is there any way to configure an HTTP health probe that will test a web page and fail if it takes too long for the server to respond. I have attempted to do this (see below) but the "receive" parameter doesn't seem to help. We are currently having a problem where one of the web servers for whatever reason gets really slow, while the other works fine with about the same number of users, I'd like to fail the slow when this occurrs.
    Here is my probe config:
    probe HTTP-SERVERASP http
    request method get url /server.asp
    expect status 200 299
    interval 5
    failed 30
    receive 5
    Thanks...Jeff

    Jeff,
    receive seems to be the solution for what you need.
    Did you verify how fast/slow the server is responding.
    Currently you allow 5 sec for the response to come back and 3 consecutives must fail before the server is brought down, so if your server resond 1 time fast enough, the server stays up.
    So, use a sniffer trace to verify the response time.
    Send me the trace if you want.
    Gilles.

  • HTTP Get healthprobe with AD user authentication

    Hi,
    I'm throwing this one out there to the ACE module Load-balancing experts!
    how do I configure a request method get url for google.co.uk so that it authenticates a healthprobe AD user with a Bluecoat proxy appliance?
    The objective here is to have a probe run a http get to google to test our bluecoat proxy appliance and then failover to another real server (or bluecoat appliance)
    Thanks

    Hi Matthew,
    This would partially depend on the authentication type defined on your Bluecoat proxy.
    For most of the setups, it should be enough to configure the credentials to be used under the probe parameters with the "(config-probe-http)# credentials " command.
    If this doesn't work, you may also try inserting an authentication header inside the request. Again configured under the probe parameters.
    For more details on the available options, please refer to http://www.cisco.com/en/US/docs/interfaces_modules/services_modules/ace/vA2_3_0/configuration/slb/guide/probe.html#wp1031398
    Regards
    Daniel

  • Using ADFS authentication to perform SSO via HTTP GET request

    Hi,
    Can i authenticate users (those users are clients, at home) to a web application using ADFS without SAML tokens?
    The situation is that i want the clients to perform SSO to the website via a link they receive in their mailboxes. 
    I thought about a solution that combines JWT in a URL link that each user will get to his private mail. this link will contain the users' claim (such as ID Num, given from AD DS Server dedicated especially for them).
    Thus, the user will receive an email with a link that already contains a short period of time JWT to perform SSO to the webapp.
    Is it possible ? anybody heard about a similar solution ?

    Sandra
    Thanks for your message
    Here is the my requirment
    The basic flow of a Where 2 Get It REST API call is:
    1) create the required XML structure,
    2) URI encode it,
    3) make a HTTP GET request,
    4) then parse the return XML document.
    Currently i have some data in ABAP structure with 5 fields, i need to create XML from the those 5 fields,and needs to be URI
    encode it, and then needs to make a HTTP get request to connect Where to Get It REST API, finally it will return XML document via HTTP Get request , and then needs to convert the return XML to  ABAP structure for further processing .the above 4 points will be implemented in my report.
    Any  body could help on this

  • I cant get two monitors to work on one pc.

    Does anyone know why i cant get two monitors working on one pc?
    I have a HP P6 2000 UKM computer, running windows 7 and it has a DVI D socket as well as the standard VGA (which i am using for my primary monitor)  I have got the right DVI  to VGA adaptor and have followed various instructions to set up duel disply but every tutorial i have seen says use the multiple display option,  but the option dropdown box is not there!
    Iv'e tried two different monitors but he same problem. If my graphics card does not suport 2 monitors then why is there a DVI D socket?
    Have never had this problem in the past!
    Please help.
    Nobby

    Hi,
    Please post the exact HP product number for your PC.
    VGA is analog and DVI-D is digital.  If you have two monitors then one of them needs to support a digital video signal if you want to use two monitors
    HP DV9700, t9300, Nvidia 8600, 4GB, Crucial C300 128GB SSD
    HP Photosmart Premium C309G, HP Photosmart 6520
    HP Touchpad, HP Chromebook 11
    Custom i7-4770k,Z-87, 8GB, Vertex 3 SSD, Samsung EVO SSD, Corsair HX650,GTX 760
    Custom i7-4790k,Z-97, 16GB, Vertex 3 SSD, Plextor M.2 SSD, Samsung EVO SSD, Corsair HX650, GTX 660TI
    Windows 7/8 UEFI/Legacy mode, MBR/GPT

  • Can't get external monitor to work

    I've used a Mac laptop for the last 8 years, finally decided to get an external monitor for home use.
    I purchased a 25" Hanns-G HZ251. It's not working as I would expect it to work. I've got a standard DVI connection on my older MacBook Pro so I'm connecting via a DVI to DVI cable.
    The only way I can get the monitor to display what is actually on my laptop is to have my laptop open and mirroring turned on. I thought I could have my laptop shut and the monitor would still work when connected, but when I shut my laptop it just goes black.
    If I leave my laptop open but turn mirroring off, I get the generic purple Mac desktop, not my desktop.
    What am I doing wrong?
    There's an install CD that comes with it, but that only runs on a Windows machine. I appreciate any advice, I'm fairly technically handy but this is my first foray into using external monitors, so I'm definitely struggling to figure this out. Thanks.

    conejo61 wrote:
    Yes, it's connected to the power adaptor and I have an external trackball and keyboard.
    You will have to keep them both open and play around with monitor settings until you get them both working. Keep doing "Gather windows" in System Preferences to get the display preferences window for the 2nd monitor and change it each time it doesn't display anything.
    I don't know what it means "you will have to set it".
    You have to set the desktop for the additional screen. Once you get closed clamshell to work, the external monitor will be your primary screen and you won't have to worry about it.

  • Retrieve data from a non-peoplesoft application using HTTP Get

    I need to retrieve data from a non-peoplesoft application. They want us to submit a HTTP GET request to their URL with a series of parameters. I am thinking about using HTTP Targert connector to accomplish this. Does anyone have sample peoplecode?
    Currently we are on 8.51.10 Tools...
    If there is any better way .. please let me know ..

    I have used HTTP Get to get XML file from a government sanction list by hitting URL http://www.treasury.gov/ofac/downloads/sdn.xml
    There is a delivered PS program that does that for vendor sanctions. I had to get the online setup correctly by creating a new custom Node with HTTP Target Connector. The program name is BSP_IMPORT. The below code is responsible for the calling the node and retrieving the data. Play around with the code below see if you can get it to meet your needs.
    BSP_IMPORT_AET.BANKNODE.Value is just the custom external code that I created.
    PMT_FLAT_FILE_INBOUND message is just a none rowset based message to use the web service call.
    Local TR:FileUtilities:FTP &oFTPUtil = create TR:FileUtilities:FTP();
    +/* HTTP */+
    +/*******************************************************************************/+
    Local Message &msgHTTP;
    Local Message &msgResult;
    +&msgHTTP = CreateMessage(Message.PMT_FLAT_FILE_INBOUND);+
    +&oFTPUtil.PopulateFTPGetIBInfo(&msgHTTP, BSP_IMPORT_AET.BANKNODE.Value);+
    +&msgResult = %IntBroker.ConnectorRequest(&msgHTTP);+
    +/* check to see if the file is wrapped */+
    +&strAllLines = &msgResult.GenXMLString();+
    +&strAllLines = Substitute(&strAllLines, Char(26), " "); /* Added this line to remove invalid characters */+
    +/*******************************************************************************/+
    Edited by: Maher on Mar 20, 2012 3:28 PM

  • HANDLING HTTP "GET"  IN SENDER ADAPTER

    Hi,
    I have a Scenario where I have to use HTTP GET Adapter  to get data from a website daily to PI and Post the data from PI to SAP ECC.On the receiver end Idoc is being used.I need help on what to use (From sdn I came to know that Java Proxy or Adapter Module can be used ) and how to configure the sender adapter in this scenario.In case of Adpater module the steps needed to configure the scenario would be helpful.In case of Java Proxy sample code that would suit the scenario would be appreciated.

    Only 7.3 version (Latest) supports HTTP GET method. All previous versions support only POST.
    In your case java proxy is better choice.
    Refer these standard links.
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/7d4db211-0d01-0010-1e8e-9b07fc2113ab?quicklink=index&overridelayout=true
    http://wiki.sdn.sap.com/wiki/display/Java/JavaProxyChangesinPI7.1fromPI7.0
    http://help.sap.com/saphelp_nwesrce/helpdata/en/86/58cd3b11571962e10000000a11402f/content.htm
    Basically you have to create java proxy for the outbound (sender) interface and use those proxy(stub) objects to code in java. Refer sender java proxy in the above link.

Maybe you are looking for