Receiving a COM event from a DLL in LabView

We are access an inproc server windows DLL from LabView. The COM interface is derived from IDispatch and has many methods and 2 events. The methods work great but we can't see the events or create event queues. Do we need to move the DLL interface more towards ActiveX? What classes or methods does the COM interface have to support for LabView to handle COM events?

I am working with a COM expert who has done this. I have interfaced to his
DLL based server via LV Activex event vi's. Write back with your email
address and I will see if I can connect you up with him.
"Craig_2002" wrote in message
news:[email protected]..
> We are access an inproc server windows DLL from LabView. The COM
> interface is derived from IDispatch and has many methods and 2 events.
> The methods work great but we can't see the events or create event
> queues. Do we need to move the DLL interface more towards ActiveX?
> What classes or methods does the COM interface have to support for
> LabView to handle COM events?

Similar Messages

  • What's the fastest way to signal events from a dll to LabVIEW?

    We have a dll that does some number crunching. We would like to signal events without polling from LabVIEW. I've researched three possible solutions: create a windows message and grab from LabVIEW, turn the dll into an ActiveX control and send events, or put the polling in a subvi running in a separate thread. Any comments about speed or pros/cons on the three approaches will be greatly appreciated.
    Thanks,
    Kurt

    Hi,
    sometime ago we worked with dll in LV and we have found the next effect:
    we loaded the library into memory with some program (not LV). Dll had global variables and we could change them from this program. If we tried to work with this DLL at the same time with LV we could see the changes of this variables (the changes were made with first program).
    I think that windows keeps in the memory only one copy of DLL so you can organize the data exchange between applications using global variables in this DLL. Let your non LV application make some operations and then change variable when the event ocures. And let LV at the same time read this variable from DLL and look if the event has ocured.
    Hope it helps, but I'm not sure, because we saw this effect but didn't use i
    t.
    Oleg Chutko.

  • Overflow Map has received an inexplicable event from the front map

    Hello, I am posting this to ask if someone can shed additional light on this error. Is it due to incorrect usage of the SafeNamedCache or an internal error?
    2006-12-07 20:33:59.190 Tangosol Coherence 3.1/339 <Warning> (thread=RMI TCP Connection(3)-127.0.0.2, member=1): Overflow Map has received an inexplicable event from the front map; such an event should not have been possible to occur. The Overflow Map will arbitrarily interpret the event in order to maintain its own internal consistency. The likely origin of the event is direct modification of the front and/or back maps managed by the Overflow Map, a MapListener making re-entrant modifications to its source map, or an ObservableMap implementation that reacts to the Map API in a manner inconsistent with the specification (e.g. actively modifying its contents in a manner that differs from the sequence of API calls made against it). This Overflow Map instance will not repeat this warning, and will attempt to silently compensate for subsequent similar event irregularities.
    Event: MapEvent{ObservableHashMap added: key=CalypsoCache|22845412, value=Lease: CalypsoCache|22845412 (Cache=TangosolLock._locks, Size=Unknown, Version=0/0, IssuerId=0, HolderId=0, Status=LEASE_UNISSUED, Last locked at Wed Dec 31 16:00:00 PST 1969)}
    Stack trace follows:
    at com.tangosol.net.cache.OverflowMap.warnUnfathomable(OverflowMap.java:2947)
    at com.tangosol.net.cache.OverflowMap.putInternal(OverflowMap.java:1001)
    at com.tangosol.net.cache.OverflowMap.put(OverflowMap.java:360)
    at com.tangosol.coherence.component.util.CacheHandler.ensureLease(CacheHandler.CDB:15)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.ReplicatedCache.lockResource(ReplicatedCache.CDB:29)
    at com.tangosol.coherence.component.util.CacheHandler.lock(CacheHandler.CDB:3)
    at com.tangosol.coherence.component.util.SafeNamedCache.lock(SafeNamedCache.CDB:1)
    at com.calypso.tk.lock.TangosolLock.acquire(TangosolLock.java:24)
    at com.calypso.tk.lock.DistributedReentrantLock.acquire(DistributedReentrantLock.java:50)
    at com.calypso.tk.util.cache.CalypsoCache.lock(CalypsoCache.java:1772)
    at com.calypso.tk.util.cache.CalypsoCache.getImpl(CalypsoCache.java:1325)
    at com.calypso.tk.util.cache.CalypsoCache.peekImpl(CalypsoCache.java:1320)
    at com.calypso.tk.util.cache.CalypsoCache.peek(CalypsoCache.java:244)
    at com.calypso.tk.util.cache.CalypsoCache.put(CalypsoCache.java:314)
    at com.calypso.tk.core.sql.BookSQL.putInCache(BookSQL.java:314)
    at com.calypso.tk.core.sql.BookSQL.loadAll(BookSQL.java:1494)
    at com.calypso.tk.core.sql.BookSQL.loadAll(BookSQL.java:1158)
    at com.calypso.tk.core.sql.BookSQL.load(BookSQL.java:1186)
    at com.calypso.tk.core.sql.BookSQL.getBook(BookSQL.java:545)
    at com.calypso.tk.core.sql.BookSQL.get(BookSQL.java:237)
    at com.calypso.tk.refdata.sql.UserDefaultsSQL$UserDefaultsLoader.buildObjectFromResultSet(UserDefaultsSQL.java:307)
    at com.calypso.tk.core.sql.SQLObjectPersistor.executeSQL(SQLObjectPersistor.java:399)

    It is quite strange, of course, to have confusion with which config is being used, which is why there is now a log message telling you which config was loaded. I think that the log message was introduced in version 3.1 or 3.2.
    The other thing that I do (at least when testing something) is specify the config on the command line, e.g.
    java -server -Xms128m -Xmx128m -Dtangosol.coherence.cacheconfig=C:\java\dev\test-cache-config.xml -cp coherence.jar;tangosol.jar;...
    BTW, I have downloaded 3.2.1 and will be using that for my tests. So presumably the warning/error will no longer occur? That is our expectation, since it would be a bug (unless you were doing one of the weird things mentioned in the message).
    Keep in mind that even with the message, the Overflow Map keeps going; it is just a warning (albeit a complicated sounding one) that indicates that some internal state (or event stream or lack thereof) is not what was expected as the result of one or more actions.
    I apologize for the inconvenience, and thank you for taking your time to clarify it. We do work hard to avoid this type of issue (or any related confusion), and we have continued to increase our unit and regression test coverage with each release, including with respect to this issue. With that in mind, please do not hesitate to contact us (on this forum if you would like) with suggestions and other feedback; we do want to be aware of the things that our customers are looking for and would like to see improved.
    Peace,
    Cameron Purdy
    Tangosol Coherence: The Java Data Grid

  • LabView user-event from external dll source

    Hi!
    I'm dealing with the following issue:
    I use a CAN sniffer device, wich sends data over USB to a PC. The main goal is to create a vi that can process the incoming data. I already have a vi wich works with polling mechanism. It calls external DLL functions with the "Call library function node". The main problem is the polling mechanism.
    I would like to recreate this vi so that it would work event-driven. I have an other application, written in C++, that does the same thing, and it gets interrupts from a DLL, when a new data is available in the input buffer.
    The callback mechanism is implemented in the DLL.
    In LabView I would like to do tha same thing. There is the "event case structure", but there is no option for defining such user-events, that i would prefer.
    I have found a similar topic, there the solution is "occurrences". The occurrence is called from a DLL, too. But this solution uses the "waiting for occurrence to set", that is an endless-loop-like thing.
    The other thing I've found is the ActiveX and .NET events. I don't know, probably that is the solution.
    Anyway: is there a possibility to create such events, that can be generated from a simple external DLL and can be handled by "event case structure"? How should I do this?
    Or how NI does this? I mean that NIs DAQ cards must use some similar methods for data processing. Is there some tutorial or support about it?
    Thank you for your answer!

    2716jag wrote:
    Hi Wiebe,         From your answer i have a doubt that What it exactly means "If the dll is used from within LabVIEW". Also i want to know Is there any way to access the functuions defined in the .SYS file in Labview Environment. Regards,Jagan Can you be a litte more specific with your first sentence. I have no good idea what you mean. A .sys driver is usually a kernel device driver. This driver has to be started and run in the kernel subsystem which LabVIEW can not access directly. Such a driver is initialized using the CreateFile() Windows API. The returned handle is then used with other API functions such as ReadFile(), WriteWile(), DeviceIoControl(), and finally CloseHandle().Theoretically you could call all this APIs directly from within LabVIEW using the Call Library Node. In practice you do not want to do this even for fairly simple kernel drivers since the parameters for those APIs do get fairly complex in most cases, and you usually do also want to have some sort of asynchronous operation using events or such to make the driver access user friendly. All these things are most easily handled in a user space DLL written in C that exports a more LabVIEW friendly API that you can then import into LabVIEW using the Call Library Node. Usually most kernel device drivers do come with a accompagning user space DLL already, as this is the only sensible way of accessing such a driver. So you can usually look for the documentation of that user space DLL API and go from there trying to import that into LabVIEW using the Call Library Node. Even then it may not be easy at all if that API uses complicated function parameters and even completely impossible if it uses callbacks or such, requiring you to write a so called wrapper DLL that translates between the native API and a more LabVIEW friendly API.  You don't have to believe me but I can guarantee you that if writing such a user space DLL or wrapper DLL is beyond your capabilities, trying to go directly about accessing the Windows APIs in LabVIEW to access a kernel device driver is going to make you squirm in real pain. And those knowing how to write such a DLL would never even consider spending the time to try to access a kernel device driver directly from LabVIEW. Rolf Kalbermatter

  • CS-MARS v6 only receives "generic AAA events" from ACS v4.0

    I have steup CS MARS v6.x to retrieve events from an ACS v4.0 server. I have a PN agent runnung on the ACS server looking at the FAILED ATTEMPTS, PASSED AUTHENTICATION, RADIUS ADMIN, and TACACS ACCOUNTING active log files. The only event that fires on the MARS system is "generic AAA event" which by default does not show in the incidents page without a custom rule, and I can only tell what happens (E.g TACACS start/stop) by looking in the raw data within th incident.
    Is this correct ? I would have thought that other AAA events would fire as there are many in the the MARS database, is this a limitation of ACS v4.0 ?
    Can any one help ?

    If using the pnlogagent, then configure MARS to use ACS 3.x. This assumes that the log agent retrieves and sends info collected in the CSV log files. If using this method, regardless if using ACS 3.x or 4.x, select the ACS 3.x option in MARS.
    MARS 6.x can receive the ACS logs via Syslog. To use this option, the pnlogagent is not required. Configure ACS to log data to Syslog rather than CSV. To use this option, select ACS 4.x option for sw on a host, or ACS SE 4.x for the appliance-based solution.
    Hope that clarifies. For more info, see:
    http://cisco.com/en/US/docs/security/security_management/cs-mars/6.0/device/configuration/guide/cfgAaaSv.html#wp778686
    chyps

  • How can I get an unsigned char string with nulls from a dll into LabVIEW 6i?

    The following ethernet packet data is contained in an unsigned char * string returned from my dll (it's formatted on printing):
    Received A 230 Packet On Adapter 0x008F0070
    Ethernet Dest: 01.E0.BB.00.00.15 Src: 00.E0.BB.00.DD.CC Type: 0x8868
    000000: 01 E0 BB 00 00 15 00 E0 : BB 00 DD CC 88 68 48 41 .............hHA
    000010: 00 E0 BB 00 DD CC 80 B3 : 00 00 FF FF 00 02 00 01 ................
    000020: 01 00 F0 18 FF 7F 7F FF : FF 7F 7F FF FF 7F 7F FF ................etc., etc.
    However, when I read this string into LabVIEW 6i, I only get the following:
    01E0 BB
    Which is the data before the first NULL or 00 information. I found a "Remove Unprintable Chars.vi" but it
    just sees more data before the above string, nothing after, as seen here: 5C30 31E0 BB.
    Anybody have any suggestions for how to get the rest of the string? Is there something I can do to further reformat my dll? The dll I'm using is already a wrapper around another dll so I have some flexibility, but the bottom line is, the data I want is in the format of an unsigned char *.

    Excellent advice, this mostly works so I have some further questions:
    I am just reading network traffic off my ethernet card right now, but here is what I get using my C program to test:
    000000: 01 E0 BB 00 00 15 00 E0 : BB 00 DD CC 88 68 48 41 .............hHA
    000010: 00 E0 BB 00 DD CC 80 B3 : 00 00 FF FF 00 02 00 01 ................
    000020: 01 00 38 3C FF 7F 7F 7F : 7F 7F 7F FF FF 7F 7F FF ..8<............
    000030: FF 7F 7F FF FF 7F 7F FF : 7F 7F 7F FF FF FF FF FE ................
    000040: FE FF FF FF FF 7F 7F 7F : 7F 7E 7E 7F 7F 7E 7E FF .........~~..~~.
    000050: 7F 7F 7F 7F FF 7F 7F 7F : 7F 7F 7F FF FF 7F 7E 7F ..............~.
    000060: 7F 7F 7E 7F 7F 7E 7F FF : FF 7F FF FF FE FF FF FE ..~..~..........
    000070: FF FF FF FF FF 7F 7F FF : FF 7F 7F FF FF FF FF FF ................
    000080: FF 7F 7F FF FF 7F 7F FF : FF 7F 7F FF FF 7F 7F FF ................
    000090: FF 7F 7F 7F FF 7F 7F 7F : 7F 7F 7F FF FF 7F 7F FF ................
    0000A0: FF 7F 7F 7F 7F 7E 7E 7F : 7F 7F FF FF FF FF FF FF .....~~.........
    0000B0: FF FF 7F FF FF 7F 7F FF : 7F 7F 7F FF FF 7E 7F FF .............~..
    0000C0: FF FF 7F FF FF 7F 7F FF : 7F 7F 7F FF FF 7F 7F FF ................
    0000D0: FF 7F 7F FF FF 7F 7F 7F : 7F 7F 7F FF FF FF FF FE ................
    0000E0: FE FF FF FF 00 01 : ................
    And here is what I get using LabVIEW to call the dll:
    0015 00E0 BB00 DDCC 8868 4841 00E0 BB00 DDCC 80B3 0000 FFFF 0002 0001 0100 9600 7F7F 7F7E 7F7F 7F7F 7F7F 7F7F 7F7F 7F00 B405 4300 3300 0000 0000 0000 01E0 BB00 0015 00E0 BB00 DDCC 8868 4841 00E0 BB00 DDCC 80B3 0000 FFFF 0002 0001 0100 9600 7F7F 7F7E 7F7F 7F7F 7F7F 7F7F 7F7F 7F00 F405 1B04 0C04 0000 0000 0000 8000 0000 0000 0000 0800 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
    The first thing I notice is that the first 4 bytes are chopped off, and after about 50 bytes, the data is corrupted until the sequence starts to repeat, but this time it starts with the missing 4 bytes and still corrupts after about 55 bytes.
    I am expecting the data in LabVIEW to look very similar to the C data because the network packets I am grabbing are pretty consistant, only a couple bytes will vary between them, not the number I am seeing in LabVIEW.
    Another side effect I'm seeing is that I can only run my labVIEW code once, if I try running it again it crashes with failures such as:
    memory could not be "read"
    For reference, I am opening and closing the network adapter inside the read function of my dll, but the pointer seems like it should be intact...
    Attachments:
    zListAdapters.vi ‏30 KB
    listAdapters.dll ‏201 KB
    Reading.dll ‏213 KB

  • Can I call a function from a dll in LabVIEW that returns:double*string and int.?

    I have a function from a dll that return a double* string and an integer. How can I call this function from LabVIEW? There is a possibility to work in LabVIEW with a double* string?

    pcbv wrote:
    > Hello all,<br><br>The header of the function is:
    >
    > "HRESULT WRAPIEnumerateDevices(WRAPI_NDIS_DEVICE **ppDeviceList, long *plItems);"
    >
    > where WRAPI_NDIS_DEVICE have this form:
    >
    > typedef struct WRAPI_NDIS_DEVICE<br>{<br>
    > WCHAR *pDeviceName;<br>
    > WCHAR *pDeviceDescription;<br><br>}
    > WRAPI_NDIS_DEVICE;<br><br>
    >
    > The function is from WRAPI.dll, used for communication with wireless card.
    > For my application I need to call in LabVIEW this function.
    Two difficulties I can see with this.
    First the application seems to allocate the array of references
    internally and return a pointer to that array. In that case there must
    be another function which then deallocates that array again.
    Then you would need to setup the function call to have a pointer to an
    int32 number for the deviceList parameter and another pointer to int32
    one for the plItems parameter.
    Then create another function in your DLL similar to this:
    HRESULT WRAPIEnumExtractDevice(WRAPI_NDIS_DEVICE *lpDeviceList, long i,
    CHAR lpszDeviceName, LONG lenDeviceName,
    CHAR lpszDeviceDesc, LONG lenDeviceDesc)
    if (!lpDeviceList)
    return ERROR_INV_PARAMETER;
    if (lpDeviceList[i].pDeviceName)
    WideCharToMultiByte(CP_ACP, 0,
    pDeviceList[i].pDeviceName, -1,
    lpszDeviceName, lenDeviceName,
    NULL, NULL);
    if (lpDeviceList[i].pDeviceName)
    WideCharToMultiByte(CP_ACP, 0,
    pDeviceList[i].pDeviceDescription, -1,
    lpszDeviceDesc, lenDeviceDesc,
    NULL, NULL);
    return NO_ERROR;
    Pass the int32 you got from the first parameter of the previous call as
    a simple int32 passed by value to this function (and make sure you don't
    call this function with a higher index than (plItems - 1) returned from
    the first function.
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Event structure doesn't handle all events from external DLL source

    Hi!
    I use a DLL, wich handles an USB CAN transceiver device, and generates LabVIEW user events with extcode.h and PostLVUserEvent() function.
    In my vi I use an event case structure to handle theese external events. The problem is, that if the events come too frequently, then it cannot handle all events.
    The vi contains a couple of parallel while loops which process the incoming data from the external event.
    In another application I use the same architecture, and that works fine. This one is more complex.
    Do you think I have reached the limits of the program? Or what else can be the problem?
    I have tried to use a queue in the  event structure, it helped a little, but yet, not all the events are handled. My external DLL sends all event, so the problem is not there.
    Thanks in advance!

    Hi Wasz,
    Thanks for the post and I hope your well.
    It is not possible for the event structure to miss events - it simply queues them up. To keep the event structure 'in time' with the code you must ensure the code to execute in each event is minimal to allow the event structure to handle the next event. 
    Please see this two links:
    event structure buffering: leading to,
    How to avoid built-up for "cursor move" events? : where somone is trying to avoid handling all events.
    What sort of events are not being handled? Could it be an issue your events are not configured correctly? Maybe if you could produce a small example in LabVIEW code, so we can just test the event structure configuration... someone working around the external dll call - which you seem sure is working correctly.  
    In terms of queuing to process the events in other loops is certainly an option to speed up the event structure. To do this, use a produce/consumer design pattern.
    hope this helps,
    Kind Regards
    James Hillman
    Applications Engineer 2008 to 2009 National Instruments UK & Ireland
    Loughborough University UK - 2006 to 2011
    Remember Kudos those who help!

  • How do I use the a command from a .dll with labview?

    I want to use for example the M8784Open() command to control an M8784
    photon counter.  I know how to place a call library function node
    but don't know where to go there. The user manual for the photon
    counter has the following explanation of the M8784Open() command but I
    don't know how to use their advice in labview!
    7-3-1 M8784Open( )
    Declaration HANDLE M8784Open( BYTE Board );
    Parameter
    BYTE Board
    Specify the board to be used: M8784_MASTER or M8784_SLAVE. Specify both
    when making 2-channel measurements simultaneously. It is not possible
    to specify M8784_SLAVE only.
    Return value A handle for the M8784 is returned when the function has succeeded..
    INVALID_HANDLE_VALUE is returned if the function has failed..
    Explanation Calls a handle to allow the M8784API.dll to use the M8784.sys driver.
    Hereafter, specify this API’s return value (handle) when using other APIs.
    When quitting M8784 operation, call up M8784Close( ) to cancel the driver.

    You need to find out the equivalent number of the parameter. Somewhere in your documentation, or inside a file (for example, a header .h file in C/C++) you will find the definitions of each parameter.
    For example, M8784_MASTER may have the value 1 and M8784_SLAVE the value of 2. You already know that it is a BYTE, so it will be a number of type U8 in LabVIEW. You need to find the exact values.
    Probably, by value "A" it means the hex number "A", which is 10 in decimal. You need to find that in your documentation.
    You also need to find the type HANDLE. It can be a BYTE, etc. Once you know that, find the value of INVALID_HANDLE_VALUE, so you can test for the error.
    Most of this information can be found in the document Using External Code in LabVIEW. Check your help file, or check this link.
    Regards;
    Enrique
    Message Edited by Enrique on 09-29-2005 10:36 AM
    www.vartortech.com

  • Followup on return event from load balanced SO

    Hi folks,
    I had earlier posted a message about receiving a return event from an
    asynchronous call to a Load Balanced Service Object.
    It turns out that return events are handled specially and that the
    sample provided will work just fine as is. In other words, the return event
    is mapped to the load balanced copy that it was called on.
    Thanks all of you who sent such interesting work arounds.
    -John
    John Jamison
    Sage Solutions, Inc.
    353 Sacramento Street, Suite 1360
    San Francisco, CA 94111
    415 392 7243 x 306
    [email protected]

    Hi folks,
    I had earlier posted a message about receiving a return event from an
    asynchronous call to a Load Balanced Service Object.
    It turns out that return events are handled specially and that the
    sample provided will work just fine as is. In other words, the return event
    is mapped to the load balanced copy that it was called on.
    Thanks all of you who sent such interesting work arounds.
    -John
    John Jamison
    Sage Solutions, Inc.
    353 Sacramento Street, Suite 1360
    San Francisco, CA 94111
    415 392 7243 x 306
    [email protected]

  • Stuck Receive XML PO event

    Several Receive XML PO events from Send XML Document workflows are "stuck" and we're unable to get them to a completed state (there is an ECX Main Error Process child underneath; we can clear the error, but it doesn't help). The Transaction Monitor shows the POs generated from the original POXML workflow are there, but they're in an error state and we can't select the "check box" and act on them since they're greyed-out.
    Any thoughts out there? Thanks!!!

    Hi Vishal,
    Assuming you are using R12+, you can have seperate templates used for differrent OUs. In the PO Approval workflow it shall pick the respective template.
    During submission of concurrent program "PO Output for Communication", you can specify the right template in the input parameters.
    Regards,
    G V Ranjith

  • Getting 34208 Events in IIS server after come out from Maintenance mode

    Hi Experts,
    We are monitoring .Net application(APM) in our environment(SCOM 2012 SP1).  We are putting all the servers in Maintenance mode on every sunday(Weekly Maintenance), after come out from MMode  getting 34208 events in OPSMGR Logs, particularly from
    IIS servers(APM). 
    Do we have any fix for that like cumulative update?
    Can we put IIS server into Maintenance mode? If we put in MMode, Will it affect monitoring??
    Expecting your reply.. Thanks in advance!!!
    Regards
    Karthick

    Thanks for reply Agrawal!
    I know that we won't get alerts if the servers are in Maintenance mode.  But we are getting 34208 events particularly from IIS servers(.Net Application Performance Monitoring - APM) as the result we are receiving warning alerts in SCOM console stating
    that " Restart IIS service" which will affect other monitoring in the servers.
    Is anyone getting this issue in your environment?  Generally we will get 34208 events while we adding new application in to IIS server.  But here we are getting this events after the server come out from MMode.
    Kindly provide your valuable suggestions.  Thanks!
    Regards
    Karthick

  • Receiving a calendar event message from a third party on a BB Z10

    I have a BB Z10 on the UK Vodafone network. My Z10 is set to GMT time and correctly shows that I am in the "Dublin, London" time zone. This is the GMT time zone description that all BB devices that I have ever owned have shown.
    This afternoon (UK time) i received a calendar event notification from a client who I have since established was at his desk in London when he sent the message advising me of a conference call to take place next week.
    The advice on the Z10 has five clear sections: "Status", "Date", a bell symbol to indicate when the reminder will sound, and a fifth symbol indicating the number on which to call in, and the PIN code.
    However, and this is my serious problem, there is a third section on the advice which has a globe symbol and appears to exist to indicate where the person setting up the event was located when he/she sent the message. In the specific case of which I write, the message states "This event is displayed in local time, but was created in Reykjavik (GMT) [sic}". The actual message shows the time for the event as one hour later than the actual time that the event is scheduled to take place - in other words GMT + 2 hours - namely the time in continental Europe and Reykjavik.
    I have serious issues with this:
    1) Is it the real intention to indicate where the sender of the message was located when the message was sent?
    2) if yes, this is a serious breach of privacy
    3) if yes, the location is wrong, as the person who sent me the message has confirmed that he was at his desk in London
    4) if no what is the purpose in indicating where "the message was created" (BB's words - not mine)
    5) the indicated time of the event is wrong - it has assumed a different time zone than that in which I and the sender are located.
    Has anyone else encountered this problem and what has BB got to say about it???
    Thanks
    PJCMoray
    PJCMoray

    I received the e-mail notification on Microsift Outlook from a third party (i.e. not someone within my own organisation).
    The same invite on both my lap-top  computer and my BB 9900 Bold did not have any mention about the sender being in Iceland (or anywhere else!) and showed the correct time and time-zone for the agreed meeting - namely, 8,30am on Friday the 19th April.
    I confirm that my Z10 is set to the "Dublin, London (+0)" time zone and is currently showing the correct British Summer Time of 16.31. The device switched automatically to British Summer Time on Sunday 31st March.
    I would welcome your comments.
    In every other respect (apart from the infamous Outlook USB synching issue about which I am sure you have heard more than enough!!), the Z10 is an outstanding device and deserves to be the device which at long last wipes the smile off the faces of those equine rumps in Cupertino, California!!
    I am expecting the roll-out of the Q10 in the UK in a couple of weeks  - please??!!
    Thanks again for your help and assistance
    PJCMoray
    PJCMoray

  • My wife wrote her resume. Wants to email it as an attachment only. But whenever it is received it comes as an attachment and as an open document in the body of the email. How do we stop the resume from opening in the body of the email?

    My wife wrote her resume. Wants to email it as an attachment only. But whenever it is received it comes as an attachment and as an open document in the body of the email. How do we stop the resume from opening in the body of the email?

    wyman41 wrote:
    She wrote her resume in Word.
    I don't have any problem attaching just a MS Word file in Mail. My process is pretty simple....with a message open I click the attach icon (paperclip) at the top of the message, then navigate to where the file is located and select it. I make sure I have the cursor at the bottom of the new message below my signature line. FWIW I use MS Word 2011.

  • Receiving events from event hub was blocked.

    In our Cloud Service project, we have 2 instances for work role (deploy to Azure), the work role is consume events from the EventHub using EventProcessorHost(host name is RoleInstance name).
    For sending events:
        var
    client = EventHubClient.CreateFromConnectionString(serviceBusConnectionString,
    hubName);
    while (true)
    var eventData =
    new
    EventData(Encoding.UTF8.GetBytes("test"))
    {PartitionKey = "key"};
                        eventData.Properties.Add("time",
    DateTime.UtcNow);
                    client.SendAsync(eventData).Wait();
                    Thread.Sleep(50);
    Each 50ms, we send one event (event1, 2,3 …….);
    For receiving data:    
     public
    async
    Task ProcessEventsAsync(PartitionContext
    context, IEnumerable<EventData>
    events)
                //when
    we get the event, so we can view the log
    Trace.WriteLine(“got events”);
    foreach (var
    eventData in events)
                    // handle the event
    Task.Delay(12000).Wait();
    await ContextCheckpointAsync(context);
    We add the
    delay for event operation.
    It seems that we cannot receive data in time from the log, seems event6 was blocked for the Event5 delay, after the 12ms, we can receive event6 from the EventHub, and the Event6
    delay is 40s(from the log, we send event6 to Hub at 35:10, but we get from Hub at 35:50),
    So I wonder to know the maximum number of threads are working on processing fot the EventProcessorHost? Depends on the Partitions?
    And is there any way to receiving events in time?

    Hi Jordan
    Since Task.Delay call blocks the callback, host won't hand over new events until you're done with the current batch. This is due to order guarantee of the events delivered, i.e. host should process the events in order from the same partition.
    If event process is taking so long then you should consider to move process job into a separate thread so host can deliver new batch of events while thread is working on the previous batch.

Maybe you are looking for