Using BlockingQueue for Producer - Consumer

I am trying to use the BlockingQueue in a Producer-Consumer
pattern instead of creating a Q and using wait() and notify().
The output what I want is:
Put : 1
Got : 1
Put : 2
Got : 2But the output I am getting is :
Put 0
Put 2
Put 4
Got 3
Got 5
Got 7This is my Java code using BlockingQueue
Have I missed any point?
Can I not use BlockingQueue instead of using wait() and notify()?
class Producer2 implements Runnable {
     private BlockingQueue<String> queue;
     public Producer2(BlockingQueue<String> q){
          this.queue = q;
     public void run(){
          int i=0;
          while(true){
               try {
                    String putValue = Integer.toString(i++);
                    queue.put(Integer.toString(i++));
                    System.out.println("Put " + putValue);
               } catch (InterruptedException e) {
                    e.printStackTrace();
class Consumer2 implements Runnable {
     private BlockingQueue<String> queue;
     public Consumer2(BlockingQueue<String> q){
          this.queue = q;
          public void run(){
               while(true){
                    try {
                         String value = queue.take();
                         System.out.println("Got " + value);
                    } catch (InterruptedException e) {
                         e.printStackTrace();
public class ProducerConsumer_BlockingQueue_Test {
       public static void main(String[] args) throws Exception {
              BlockingQueue<String> q =
                 new LinkedBlockingQueue<String>();
              Thread p1 = new Thread(new Producer2(q));
              Thread c1 = new Thread(new Consumer2(q));
              p1.start();
              c1.start();
}

Nothing to do with the queue, in your producer you're incrementing i twice, once after seting putValue, again after queuing the item.

Similar Messages

  • Functinal global variable for producer - consumer architecture

    Hi all,
    I am using a Producer - consumer architecture for my data acquistion as in the belwo diagram.. at some time i am stuck insde the while loop continously acquiring data .. is there any way i use one stop button as a functional gloabl variable and stop inside (consumer while loop) as well as producer architecture....
    Why i need this ?? so many design rules say that global variables are not a good idea...
    Thanks in advance...

    FGVs will work fine for your application.  You can also wire your error cluster to your stop button.  Your producer loop should throw an error 1 when the stop button is pressed, which will in turn stop your consumer loop.  But you would need a slightly different design for this.  Your consumer loop is designed to not advance until the stop button is pressed.  Instead of using and enum, you can use your producer loop to control the trigger to take a measurement.  No need for the while loop in the consumer loop this way.  You could set up your consumer loop to take a number of measurements, and then quit or take measurements for a certain amount of time.  Either way, you can stop your while loop when it times out.
    If you choose to stay with this design, a simple state machine archetecure might be better based on what I see.
    Reese, (former CLAD, future CLD)
    Some people call me the Space Cowboy!
    Some call me the gangster of love.
    Some people call me MoReese!
    ...I'm right here baby, right here, right here, right here at home

  • LV producer consumer and TestStand

    In the TestStand process model, I've replaced the original Get UUT Serial Number dialog with a custom dialog that has some additional fields, and will (eventually) allow the operator to BarCode scan the serial number.
    I'm thinking about using LabVIEW's template for Producer/Consumer.  I basically want to allow the user to hang out at this dialog until the click on either "START" or "CANCEL".  They can tab to the different fields, and Scan in the serial number if desired.  What types of 'events' would I want to capture?  Is this even the right design pattern for this situation?
    Also, this dialog needs to be modal (in front of TestStand executive). 
    Thoughts?

    mrBean,
     By custom dialog do you mean a seperate VI that you open and show the front panel when the step executes?
    If that is the case the producer consumer might be overkill. From what I've seen one of the main reasons one would use this pattern is to seperate the acquisition loop from the data record loop. In that manner the data recording doesn't slow down the data acquisition. I've used a wedge type barcode scanner in the past and it is pretty easy to impliment.
    On a side note I really enjoy reading your posts on both of the forum boards. I too at some later date will be creating a custom operator interface using LabView and your questions have been really helpful in my formulation of a plan. Thanks
    Using LabVIEW 2010SP1 and TestStand 4.5

  • Could Buffer replace the Queue in Producer/Consumer Design Pattern

    Hello,
    I have a question that the task of Buffer is to store the data and the queue is also of the same so could we use the Buffer inplace of queue in a Producer/Consumer Design Pattern.
    Solved!
    Go to Solution.

    No, those buffer examples are not nearly equal to a queue and will never ever "replace" queues in producer/consumer.
    The most important advantage of queues for producer/consumer (which none of the other buffer mechanics share) is that it works eventbased to notify the reader that data is available. So if you would simply replace the queue by overly elaborate buffer mechanics as you attached to your last post, you will lose a great deal of the the purpose using producer/consumer.
    So, to compare both mechanics:
    - Queue works eventbased, whereas the buffer example does not.
    - Queue has to allocate memory during runtime if more elements are written to the queue than dequeued. This is also true for the buffer (it has to be resized).
    - Since the buffer is effectively simply an array with overhead, memory management is getting slow and messy with increasing memory fragmentation. Queues perform way better here (but have their limits there too).
    - The overhead for the buffer (array handling) has to be implemented manually. Queue functions encapsulate all necessary functionality you will ever need. So queues do have a simple API, whereas the buffer has not.
    - Since the buffer is simply an array, you will have a hard time sharing the content in two parallel running loops. You will need to either implement additional overhead using data value references to manage the buffer or waste lots of memory by using mechanics like variables. In addition to wasting memory, you will presumably run into race conditions so do not even think about this.
    So this leads to four '+' for the queue and only one point where "buffer" equals the queue.
    i hope, this clears things up a bit.
    Norbert
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.

  • What is the Fastest producer consumer method. Queue, RT-FIFO, Event

    Hi all,
    Another curly question for the pro's:
    I have recently inherited some labview code that uses RT-FIFO for the transfer mechanism in the producer consumer architecture.
    The code was first written 3-4 years ago and is presently in LV8.6. It is possible that the reasons for the architectural decision no longer exists.
    I am skilled using a queued producer consumer architecure,
    I understand the RT-FIFO Architecture.
    I have begun using a user Event Based architecture.
    (I have attached samples of each)
    I also see the existance of a priority Queue
    Each method has it's own capabilities and deficiencies, That aside, does anyone know the relative performance of each method.
    (Assuming single process)
    I would expect RT-FIFO to be fastest, it appears to be a low feature version of a standard queue.
    What is the perfornace hit for using a more coding freindly Queue
    The RT-FIFO description speaks of commications between time critical and lower priority threads.
    Until today, I believed that Queues had the same capability.
    I have included an event method I commonly use for peer review and to help to fellow users..
    It allows:
    1. Multiple producers with different data types
    2. Processes repecting order of production.
    3. Allows for asynchronus checking of functional notifiers such as stop, start and abort.
    4. In a non real time system it can include front panel interactions.
    What I don't understand about it is what overheads, or thread priority changes that may be experienced by using this architecture (it solves a lot of problems for me).
    Thanks in advance,
    iTm - Senior Systems Engineer
    uses: LABVIEW 2012 SP1 x86 on Windows 7 x64. cFP, cRIO, PXI-RT
    Solved!
    Go to Solution.

    Are you running into a situation where the difference in time between producing an event, and consuming it, is actually causing your problems?  If not, this is not a question worth worrying about.  Use whatever is most appropriate for your application.
    There's no need to make wild guesses - build a VI, benchmark and test!  The attached is a reasonable starting point, although I think the event structure may be slow due to setup time but may respond quickly once running.  If you experiment with this, you'll probably find that there's no definite answer to which is fastest.  Changing the size of the RT-FIFO, or of the queue, makes a big difference in speed.  At least in my testing, a single-element RT-FIFO is fastest, but an infinitely large queue is faster than a small queue, and a longer RT-FIFO is much slower than the single-element version.
    It's important to realize that RT is not another word for Fast or Efficient, it's another word for Consistent.  For the purposes of real-time (deterministic) execution, it doesn't matter how fast the RT-FIFO functions are so long as they execute in exactly the same amount of time, every time (with the exception of a "forever" timeout value, of course).  You can use either a standard queue or an RT-FIFO to communicate between loops.  One use for an RT-FIFO is when a time-critical loop is enqueuing the data.  It guarantees that the amount of time needed to put data into the FIFO will not vary.  Enqueueing data in a standard queue will sometimes be faster than other times, depending on whether there is already space available in the queue or space needs to be allocated for the new element.  If this variation is unacceptable, then use an RT-FIFO; otherwise, the standard queue works just as well.
    If the architecture shown in your image is working for you, I don't see any reason to change it.
    EDIT: oops, almost forgot to attach the code I used for testing!
    Attachments:
    Event vs Queue.vi ‏21 KB

  • State machine VS producer consumer architecture - Time Analysis

    After learning various methods to program efficiently and learn how to use SM and Producer consumer. I built a program to control stepper motor in both these techniques.
    Here is the RESULT. As we can see a simple state machine without any complicated producer consumer technique performs faster than the second one.
    I am not sure which is still the best based on performance and optimization. Please advise which one should I keep and why.
    Abhilash S Nair
    Research Assistant @ Photonic Devices and Systems lab
    [ LabView professional Development System - Version 11.0 - 32-bit ]
    LabView Gear:
    1. NI PXI-7951R & NI 5761
    2. The Imaging Source USB 3.0 monochrome camera with trigger : DMK 23UM021
    OPERATING SYSTEM - [ MS windows 7 Home Premium 64-bit SP-1 ]
    CPU - [Intel Core i7-2600 CPU @ 3.40Ghz ]
    MEMORY - [ 16.0 GB RAM ]
    GPU - [ NVIDIA GeForce GT 530 ]

    This is with state machine alone
    Abhilash S Nair
    Research Assistant @ Photonic Devices and Systems lab
    [ LabView professional Development System - Version 11.0 - 32-bit ]
    LabView Gear:
    1. NI PXI-7951R & NI 5761
    2. The Imaging Source USB 3.0 monochrome camera with trigger : DMK 23UM021
    OPERATING SYSTEM - [ MS windows 7 Home Premium 64-bit SP-1 ]
    CPU - [Intel Core i7-2600 CPU @ 3.40Ghz ]
    MEMORY - [ 16.0 GB RAM ]
    GPU - [ NVIDIA GeForce GT 530 ]
    Attachments:
    Control 1.ctl ‏6 KB
    Control 2.ctl ‏6 KB
    Motor-UNI_Directiona Dev 3-TIME_ANALYSIS-2.vi ‏54 KB

  • Is it a proper way to use queue for consumer/producer model?

    Hi all,
      I am following the example of consumer/producer model to use the queue to synchronize the following process: The producer is a loop to produce N numbers, I will put every generated number into an array and after every 5 numbers generated, I put the array into the queue and pass it to the consumer. I have to wait the consumer use up the data and it will then remove the element from queue so the producer will get a chance to produce another 5 numbers. Since I set the maximum size of the queue to be ONE, I expect the producer and consumer take turns to produce / consume all five numbers and pass the chance to the other. Here is my code
    when the case box is false, the code will be
    For the first 5 numbers, the produce will generate every thing right and put that into the array, and it will pass the array to the quere so the consumer will get a chance to loop over the array. I except the procude's loop will continue only when the queue is available (i.e. all elements are removed), but it seems that once the consumer start the loop the produce 's loop will continue (so the indicator x+1 and x+2 will show numbers changed). But it is not what I want, I know there must be something wrong but I can't tell what is it.
    Solved!
    Go to Solution.

    dragondriver wrote:
    As you said in 1, the sequency structure enforcing the execution order, that's why I put it there, in this example, to put the issue simple, I replace the complete code with number increase, in the real case, the first +1 and +2 must be executed in that order.
    Mikeporter mentioned:
    1. Get rid of all the sequence structures. None of them are doing anything but enforcing an execution order that would be the same without them.
    So even if you remove the sequence structure, there will be a fixed & defined execution order and that is because LabVIEW follows DATA FLOW MODEL.
    Data Flow Model (specifically in context of LabVIEW): A block diagram node executes when it receives all required inputs. When a node executes, it produces output data and passes the data to the next node in the dataflow path. The movement of data through the nodes determines the execution order of the VIs and functions on the block diagram (Click here for reference).
    Now in your code, just removing the sequence structure will not make sure that the execution order will gonna remain same but you need to do few very small modifications (like pass the error wire through For loop, before it goes to 'Dequeue Element' node).
    Coming to the main topic: is it a proper way to use queue for consumer/producer model?
    The model you're using (and calling it as consumer/producer model) is way too deviated from the original consumer/producer model model.
    dragondriver wrote:
    For the second one, yes, it is my fault to remove that while. I actually start from the example of Producer/Consumer design pattern template, but I didn't pay attention to the while loop in the consumer part.
    While loops (both Producer & Consumer) are the essential part of this architecture and can't be removed. You may want to start your code again using standard template.
    I am not allergic to Kudos, in fact I love Kudos.
     Make your LabVIEW experience more CONVENIENT.

  • Calling producer/consumer subvi using main vi for image grab acquire

    Hi everyone,
    I am not sure if I get the producer/consumer concept wrong. I tried to write a producer/consumer subvi that simulate continuously grab acquire image. When I call the subvi from the main while loop with a main vi, it seems to run into a infinite loop. I am wondering does anyone know how else can I activate a producer/consumer subvi using main vi? Thanks in advance.
    Kind regards,
    Han Yen
    Solved!
    Go to Solution.
    Attachments:
    MainTrial.vi ‏7 KB
    ProducerConsumerGrab.vi ‏18 KB

    Hi Han Yen,
    a few remarks :
    - your Top VI has no function what so ever.  So skip that.
    - your image queue has no name, so that gives problems from the minute you're going to use more queues.
    - It does not matter which command you send to the queue, it will start the bottom loop anyway
    - You don't have a check whether "live trial" is true yes or no, so everytime you switch it from T=>F or F=>T is will activate the command.
    I've tweeked your producer-consumer.  Maybe this will give you an idea.  I put some remarks in some places
    Kind regards,
    - Bjorn -
    Have fun using LabVIEW... and if you like my answer, please pay me back in Kudo's
    LabVIEW 5.1 - LabVIEW 2012
    Attachments:
    ProducerConsumerGrab.vi ‏21 KB

  • Running subVI in parallel with itself using producer-consumer pattern

    I'm using the procuder-consumer pattern to create what I call threads in response to various events much like in Producer Consumer with Event Structure and Queues
    I have several physical instruments, and would like to run the exact
    same test in parallel on each of the instruments.  I have a subVI
    that takes as inputs a VISA resource and a few control references among
    other things and then performs the desired experiment.  I have a
    separate consumer loop for each physical instrument, with this subVI
    inside each consumer loop.
    My test VI worked great; each consumer loop was a simple while loop
    incrementing a numeric indicator (not using my real subVI above). 
    However, my real program can only run one consumer loop at a time much
    to my dismay.  Reworking my simple test VI to use a subVI to
    increment the indicator rather than just explicitly coding everything
    resulted in the same problem: only a single consumer loop ran at a time
    (and as I stopped the running loop, another would get a chance to
    begin). The subVI in this case was extremely
    simple taking only a ref to the indicator and a ref to a boolean to
    stop, and incrementing the indicator in a while-loop.
    Is there a way around this?  Now that I've spent the time making a
    nice subVI to do the entire experiment on on the physical instrument, I
    thought it would be fairly trivial to extend this to control multiple
    instruments performing the same experiment in parallel.  It seems
    only one instance of a given subVI may run at one time.  Is this
    true?  If it is indeed true, what other options do I have?  I
    have little desire to recode my subVI to manually handle multiple
    physical instruments; this would also result in a loss of functionality
    as all parallel experiments would run more or less in lock step without
    much more complexity.
    Thank you.

    You need to make your subvi reentrant.  Then it can run several instances at any time with each instance occupying its own unique memory space.  Click on File - VI Properties - Execution, and check the reentry execution checkbox.  Then save the vi.
    - tbob
    Inventor of the WORM Global

  • Producer consumer loop for serial comms

    I have an application where I am trying to read and write to a serial port using a producer consumer loop.  My producer consumer loop seems to work fine until I put the serial comm VIs in the consumer loop.  Prior to that my event structure in the producer loop seems to work fine and all the controls on the front panel send commands into the queue and the expected reaction happens in the consumer loop.  When I put serial comm VIs into the consumer loop the application will read the serial port but none of the other controls on the front panel ever get any reaction from the consumer loop.  I am not sure if I am using the producer consumer loops correctly when using comms at the same time.  Any help would be appreciated!!
    I have attached the VI for your inspection.
    Attachments:
    pinger comms.vi ‏65 KB

    You could probably continue with your original architecture as well.  Just put the check for bytes at port in the Read case of the consumer loop.  As you said, it takes 1-2 seconds for the device to send data.  So the original architecture didn't work because you were queueing up 20 reads per second in the timeout case, but the consumer loop was taking up to a second for a single byte to come in.
    If you check for bytes in the consumer loop, if none are there, the Read case will end quickly and won't wait for that byte to come in.
    You should also probably increase the timeout of the event structure to 100-200 mseconds or even more.  The event structure would still respond instantaneously to user interface events.  And you would only be generating the timeout case a few times per second.  Which means when a byte comes in, it would probably be sitting there only 100 mseconds or so before you read it.  Unless you go click happy and generate lots of other  events not allowing the timeout case to run.

  • Timed structure for output in producer consumer data acquisition

    Hello LabVIEW community,
    I have a bit of a problem.  I am writing a program that is primarily for data aquisition but has a few control features as well.  I need the program to aquire and write several channels of data at a relitively high speed.  The program does this fine ( in the top 3 loops fo the program).  I need the program to also send a seires of two output signals in response to a particular condition.  When a certain channel registers a value of above a specified number, I need an output channel to write an anologue signal for 225 seconds and then a signal of a differnt value to the same channel untill the condition occurs again (not for several hours).
     I put this action in a timed structure inside of a case structure. The case structure and timed structure are inside of a second consumer loop.  I have no idea if this is ligitimate.  This event takes much longer than any of the other loops which run at 1 or 2 seconds. When I exicute the program with "highlight exexutuion" this longer (case/ timed ) loop never executes. I asssume this has to do with the mismatch in time scales of this loop and the other loops in the program.  I also didn't really understand the help information on timed structures, so its possible that I just need better/ different inputs to the timed stuctures.  
    If anyone can see any obvious problem in the code or suggest a better way to do the output function I would really appreciate the help.  My code is attached.   
    Thanks,
    Jo

    I can't figure out how to fix your code, but I can point out the things I see wrong with it.
    1.  You are dequeueing elements from the same queue in the same loop.  In one you are not taking the element, and in parallel, you are taking an element.  I see that in your bottom two loops.  Why?  That code won't execute until the queue gets two elements in it.  And which dequeue gets it first and which gets it second is an arbitrary race condition.  So there is no certainly of order (first 4 vs. last 4 currents in the one loop), or which gets kept and which gets discarded (in the other loop.)
    2.  You are creating and/or clearing DAQ tasks in every loop iteration.  Tasks should be created before a loop, used inside the loop (read or write), then cleared once the loop is done.  Anything else is wasteful, time consuming, and could lead you to run out of resources.
    3.  You are using the STOP function which is pretty much like hitting the abort button on the toolbar.  No program should ever stop that way.  All loops should exit gracefully.
    4.  You have a data dependncy between your bottom two loops because of the boolean wire running from one to the other.  That bottom loop will only run once (if the value is True), or run forever (if the value is false).
    5.  Use of the dynamic datatype.  You are taking waveforms, converting them to a blue wire, then coercing them into another datatype such as just displaying a scalar in an indicator.  A lot of unnecessary conversions there.
    6.  Your thermometer indicators have a digital display you can make visible.  Then you won't need the separate numeric indicator to display the value.
    7.  For loop that runs only 1 time because of the constant wired to the N terminal.  Get rid of the For Loop.
    8.  Check your spelling.  The word "Temperatures" on the graph, and one instance of "distillate" is missing an "l".
    Until all of these problems are fixed, it is not worth talking about timing of timed structures.  Some of these problems were discussed in your other thread.  http://forums.ni.com/t5/LabVIEW/producer-consumer-missing-channels/m-p/3159757#M911255   But now it seems like you've made things even more complicated without fixing the basic problems.

  • Basic Producer/Consumer loops for a newbie

    Labview neewbie here.
    I was looking at Producer Consumer loops.
    Can anybody give me a very basic explanation of how to set one up.
    I want to take readings from a HP 53131A counter and store them in an excel spreadsheet.
    I understand the part about labview slowing down as it opens the Excel file, and a seperate loop will help solve this.
    But I dont understad how to set up the Que function.
    Thanks.

    Multithreading will not make excell open faster but using concurrency you can have more than one operation operate ate different speeds.  The nice thing about the produce consumer model is that the if the consumer is slow or unreliable (freeses up) the producer doesnt care and will continue.  To use a queue is very simple, 1. create the queue, name it(optional) and give it a data type (ie int, array of floats ...)  in the produce loop use the enqueue vi to add items as needed to the queue, in the consumer dequeue these items (using a timeout = -1 the loop will wait for a new item and not consume resources)  the consumer can process the data acquired in the producer loop.
    Paul Falkenstein
    Coleman Technologies Inc.
    CLA, CPI, AIA-Vision
    Labview 4.0- 2013, RT, Vision, FPGA

  • Help? Looking for better approaches to mutlithreading, parallelism (producer/consumer)

     Hi,
         So II would like to do some parallel processing of data using the multiple cores of my computer, and I'm trying to find a way to do this in labview.  I deally, I would liek to be able to take a given task, put the work into a work queue, have threads from each processor take a task from the work queue and process it in parallel until the work queue is empty, and put the result into a results queue where I could then write the results to a file. So in a text-based languange, the implmentation would be straightforward.. but I'm not sure how to go about this in Labview. 
           I've read about the different designs patterns, and was trying to use a Producer/Consumer approach with queues. What I wanted to do was read a list of files from a directory, stuff the paths into a queue (Work Producer), then have a second loop (Work consumer/Results Producer) dequeue each file, process it, and send the results to a second queue.  Then at the end, a final loop (Results consumer) would read all of the results.
     My question now is..  is there a way to do this more cleanly than what I have on the diagram?  Right now, I have to know in advance how many parallel tasks I want to use, then I have to wire up each task before executing the program.  If I move to a different computer, I need to change the wiring digram.  Is there a way to abstract this to avoid having to make huge changes to the block diagram?  I was considering trying to make the parallel portion fit into a subVI so that I could just copy and paste several sub-vi's to easily add and remove parallel threads..    but its not so simple to have to keep track of all the queue references, and etc..  
    Has anyone already done somoething like this? I feel like what i'm trying now is becomming a big mess
    Thanks

    You can run clones (instaciate from tempaltes) of the crunching code where each get a ref to the queue based on its name. When they see the queue is empty the terminate and close.
    Make sure your queue is full be fore you lauch them.
    There is supposed to be new property that tells you how many CPU you have but I can't find it at the moment.
    Have fun!
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Producer Consumer Problem using sockets

    Hello,
    Can anybody help me how to implement the Producer Consumer Problem using java sockets? Or any resources you've, pls forward it to me
    Cheers.

    Neg wrote:
    You just tell me if there is any means to do it.Yes, Just use a fixed length ArrayBlockingQueue on either end (or both ends) Use offer() to offer more data and this will return false when the queue is full.
    Note: the use of a Socket is entirely optional.

  • Running one sub vi in background while the main vi uses it's generated data, producer/consumer?

    Hi,
    I would like to have a subrutine running at the same time as the rest of the main vi. The subrutine will be constantly producing data, and the main rutine should do different tasks depending on which data has generated the subrutine in that instant. I have read about producer/consumer design http://zone.ni.com/devzone/cda/tut/p/id/3023 but I don't know how to implement this with LV 5.1   Somebody know if it's possible, or there is something missing in my old LV version? The name of the sub vi about queues mentioned in the link are different than the one I have, and I don't achieve to connect correctly the ones I have... (that are create queue, destroy queue, insert element queue and remove element queue).
    Or, does anybody know other way to do what i want?
    Please, some help..
    Thanks a lot.

    Hi javivi,
          The queues in 5.1 are capable of supporting the producer-consumer model.  See the queue example under "Execution Control Examples".  It's showing a simple string value being "inserted" and "removed". To insert non-string data-types, use "Flatten to String" before "Insert Queue Element" then "Unflatten from String" after "Remove Queue Element".
    What "different tasks" will you do based on the data?  How is the data being read by the program - are you reading an analog-input?  Is it a "continuous" acquisition? 
    Cheers!
    "Inside every large program is a small program struggling to get out." (attributed to Tony Hoare)

Maybe you are looking for

  • Generate Sender Service using UDF

    Hi Experts, We use a RFC lookup in one of our message mapping. We use a UDF to attain this. There is no problem in the RFC lookup. There is specific lines code which generates the Sender service during runtime in this UDF. Code: String strSenderServi

  • How to check for different crop aspect ratios

    The problem I'm having is that I have hundreds of images that I need to send to a photo print lab. Before sending off my images I have to make sure they all will fit correctly for 8x10 prints (5:4 aspect ratio) and other ratios but I need to keep the

  • Enable Detail Navigation

    Hi I have created following roles. Role 1 Role 2 Role 3 I have assigned Role 3 to Role 2 Role 2 to Role 1 And Role 1 to my user. Now when i am accessing portal.... It is giving a Tab for Role1. On clicking Role1 tab i get a link for Role 2. But on cl

  • Problem in srating weblogic

    Hi i am having problem in starting weblogic server 4.5 .1 with jdk1.3 in sun solaris 2.6i get following msgThe WebLogic Server did not start up properly.Exception raised: java.lang.reflect.InvocationTargetExceptionjava.lang.reflect.InvocationTargetEx

  • I can't get music to play.

    Hi. I have a problem. I can't get music to play n my new ipod topuch.  I get up to the song list, but then when I touch the song, it doesn't play.