Crash in native calls to MAPI

Hi All
In the application that we are developing, we have java wrapper over Micosoft MAPI calls to integrate with MS Exchange Server. Our Application can be run in two modes (local and remote). In local configurations, all the calls are in the same JVM. In the remote configuration, our application will be deployed in a tomcat and we use jUnit test cases (running on another JVM) to test it. Our application exposes webservices from tomcat.
The problem we are facing is inconsistent crashes when configured in remote mode. However, we don't see the crashes happening in the local configuration. Any pointers would be of great help!
-Abhi

Hi,
Developers can also use j-XChange (http://sourceforge.net/projects/j-xchange/). It is a pure Java implementation of the entire Collaboration Data Objects (CDO 1.21) library, offered under LGPL license and allows interoperability with MS Exchange from all non-Windows platforms that support Java. This library is powered by j-Interop (www.j-interop.org).
This library is functionally similar to Commercial "J-Integra for Exchange" offering.
Thanks,
best regards,
Vikram

Similar Messages

  • Program crashes in OCI calls

    All,
    The program has set of OCI datatype converion calls from C native to Oracle types. The program crashes in OCI calls specifically in OCINumberFromReal. Below is the stack for the core dump created.
    In call to OCINumberFromReal, when it refences lnxren function, the program crashes with SIGBUS.
    The application in on solaris 10 and Oracle 11g.
    pstack corecore 'core' of 163: quartzCABT -C dom=seirel620 -g 1 -i 127 -u sei4800 -U /home3/seirel620
    f2520b7c _kill    (2, ffbfb374, 1, f4517e90, f43e1c74, ffbfb370) + 8
    f37fcfc0 skgesig_sigactionHandler (1, 9a400, 9bd08, 0, 0, 1) + 25c
    f24656c8 __sighndlr (a, ffbfc898, ffbfc5e0, f37fcd64, 0, 0) + c
    f245f320 call_user_handler (a, ffbfc898, ffbfc5e0, 0, 0, 0) + 234
    f245f4d0 sigacthandler (a, ffbfc898, ffbfc5e0, de79ff, 44, 80ee8) + 64
    --- called from signal handler with signal 10 (SIGBUS) ---
    f341ebcc lnxren (d6694c, 8, de7b42, 0, 0, caee98) + 514
    f36617f4 OCINumberFromReal (f432df90, caed70, 3, de7b42, 13d4, 0) + 5d4
    ff3653f0 __1cPedbCreateCommit6FpnIxlDArray_r1rpc_nMMESSAGE_TYPE__ (d66ab0, ffbfd950, ffbfd7dc, fffffff8, 0, dc5da8) + 948
    ff36cc8c __1cUinvokeExtnlDBService6FipnIxlDArray_r1_nMMESSAGE_TYPE__ (1, d66ab0, ffbfd950, 1, 2, abc14d) + 8c
    002b9b48 __1cUCA_GLOBAL_SUBCA_LINKXCABT4003ModGlblSubCALnk6MpnIxlDArray__nMMESSAGE_TYPE__ (abc152, d64ae0, 13b88, b49cac, f476a08c, 20) + bb0
    002ba774 sh_CABT4003ModG (ffbfdc44, abc1ea, ffbfdc2c, abc1f4, ffbfdbf4, abc209) + 9cc
    Please suggest on how to resolve this.
    Thanks in advance
    satish

    hi Nikeda,
    I replaced the sizeof(double) to DBL_DIG/FLT_DIG constant, now the program doesn't crashes but the conversion is not happening properly.
    The result of any number after conversion is "0".
    Any suggestions, Thanks in advance .. below is the code snippet u asked for ..
    class ABC
    double qty ;
    ott structure
    struct abc_ott
    OCINumber qty ;
    // pro*c code
    EXEC SQL BEGIN DECLARE SECTION ;
    abc_ott * abc_ott_inst ;
    EXEC SQL END DECLARE SECTION ;
    EXEC SQL ALLOCATE :abc_ott_inst ;
    ABC * abc = new ABC ;
    abc->qty = 100.0 ;
    OCINumberFromReal(ociError, &abc->qty, (uword)sizeof(double), &abc_ott_inst->qty ) ;
    // call with DBL_DIG
    OCINumberFromReal(ociError, &abc->qty, DBL_DIG, &abc_ott_inst->qty ) ;
    Edited by: user3894537 on May 20, 2010 8:25 AM
    Edited by: user3894537 on May 20, 2010 8:38 AM

  • BPM Idoc collection without calling the mapping in BPM

    Hi Expert,
    I have an IDOC to file scenario in which source side I have to collect multiple IDOC and map it to a single file .I am achieving it through BPM . at present I am using one multimapping and calling this mapping in the BPM under transformation step its working  fine  but due to some constraint  , Now I want to achieve it using BPM but without calling the Mapping in the BPM i.e I don't want to use Transformation step in the BPM. Is it possible ????
    Regards,
    Saurabh

    Hi Saurabh,
    If that is the case it is preferable to collect the IDocs in ECC and then send them to XI at one go.
    Cheers !
    Lokesh

  • Java code for calling xslt mapping in module?

    Hi,
    We have 2 mapping(xslt) in IR
    source->cannonical and cannonical->target
    we want to remove source->cannonical mapping and want to put that in MODULE of communication channel.
    My problem is how to call xslt mapping using java code and we done value mapping their. Did that vallumapping will work in module..
    waiting for responce..its an urgent task..
    thanq
    krishna

    You can use the MessageTransformBean to run the XSLT in the adapter framework:
    https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/3823 [original link is broken] [original link is broken] [original link is broken]
    I do not know, if the value mapping works here. Maybe you just give a try.
    Regards
    Stefan

  • How to call Java Map in XSLT map

    Hello,
    Can anyone tell me how to call Java Map in XSLT map.
    Thanks and Regards
    Hemant

    Hello, Vijay,
    Can you help in understanding how can we pass whole payload in the parameter in XSLT map.....
    for eg
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:javamap="java:DATEandTIME.Date_Time">
         <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
         <xsl:param name="inputparam" />
         <xsl:template match="/">
         <MT_TARGET>
              <date>
                   <xsl:if test="function-available('javamap:getDateValue')">
                       <xsl:value-of select="javamap:getDateValue($inputparam)"/>                    </xsl:if>
              </date>
              <time>
              <xsl:if test="function-available('javamap:getTimeValue')">
                       <xsl:value-of select="javamap:getTimeValue($inputparam)"/>                       <xsl:value-of select="$test"/>
              </xsl:if>
              </time>
              <project>
                        <xsl:value-of select= "//project"/>
              </project>
         </MT_TARGET>
         </xsl:template>
    </xsl:stylesheet>
    here we are passing static value in parameter.....
    Java code is:
                private static AbstractTrace trace = null;
                public static String getDateValue(Map inputparam)
                        trace = (AbstractTrace)inputparam.get(
                                 StreamTransformationConstants.MAPPING_TRACE );
                        Date now1 = new Date();
                        SimpleDateFormat formatter = new SimpleDateFormat ("yyyyMMd");
                        String dateString = formatter.format(now1);
                        return dateString;
                public static String getTimeValue(Map inputparam)
                            trace = (AbstractTrace)inputparam.get(
                                    StreamTransformationConstants.MAPPING_TRACE );
                            Date now1 = new Date();
                            SimpleDateFormat formatter = new SimpleDateFormat ("hhmmss");
                            String dateString1 = formatter.format(now1);
                            return dateString1;
    I want to pass whole payload so how can i pass it.

  • XSLT call Value Mapping

    Hi Folks,
    please, i need a step by step Solution for calling Value Mapping with XSLT Mapping Program.
    best regards Michael

    XSLT call Value Mapping
      Maintain the value mapping using the option available in the Integration directory. The following values should be entered for maintaining the value mapping. In the XSLT Mapping use the Java function “Valuemappingaccessor”  to read the values from the table.
    Class ValueMappingAccessor
              This class is used read the Value mapping stored in the Integration server (Java Cache). Class has a method getValueMapping. The Class is imported into the SWC Eyyy_xxxx under namespace “http://xxx.ash.com/COMMON/Common”
    Method public static String getValueMapping(String srcContext, String dstContext, String srcAgency, String srcSchema, String dstAgency, String dstSchema, String key, Map inputParam, String throwException)
    Paramters     Description
    srcContext     Source context in the Integration server (Java Cache) under which, the value is stored.
    For example, if the source values are stored using standard Value mapping table in the ID, then use source context as http://sap.com/xi/XI
    dstContext     Destination context in the Integration server (Java Cache) under which the value is stored
    For example, if the source values are stored using standard Value mapping table in the ID, then Target context as http://sap.com/xi/XI
    srcAgency     Source Agency,  a unique identifying value,  value to be used is not yet decided.
    srcSchema     Source Schema, For example this can be source field name
    key     Source field value, that is required to determine the target, In the figure 1 shown below, We need to send ‘IN’ to get ‘India’
    dstAgency     Destination Agency, a unique identifying value, value to be used is not yet decided
    dstSchema     Destination Schema, For example this can be target field name
    inputParam     Mapping transformation constants, to write the trace into the header of the message
    throwException     An indicator to throw an exception, if the value is not found in the cache. If the parameter is set to “true” or “TRUE”,   an exception is raised & message fails in the mapping step of the Pipe line.
    Returns the value, that is stored in the Value mapping context for the given parameters
    If the value mapping is maintained using Integration Directory value mapping, then we need to call the value mapping function as follows
    If  it has to be called using XSLT Mapping., then the sample code shows how to use the java class the java class “ValueMappingAccessor”.
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://www.ashok.com/idoctofile/employee" xmlns:ValueMap="java:com.xxx.yyy.ValueMappingAccessor">
        <xsl:param name="CountryCode">
            <xsl:value-of select="ns0:MT_EMPDETAILS/Country"/>
        </xsl:param>
        <xsl:param name="inputparam"/>
        <xsl:template match="/">
            <ns0:MT_EMPADDRESS xmlns:ns0="http://www.ashok.com/idoctofile/employee">
                <EmployeeNo>
                    <xsl:value-of select="ns0:MT_EMPDETAILS/EmployeeNo"/>
                </EmployeeNo>
                <FirstName>
                    <xsl:value-of select="ns0:MT_EMPDETAILS/FirstName"/>
                </FirstName>
                <LastName>
                    <xsl:value-of select="ns0:MT_EMPDETAILS/LastName"/>
                </LastName>
                <Address1>
                    <xsl:value-of select="ns0:MT_EMPDETAILS/AddressLine1"/>
                </Address1>
                <Address2>
                    <xsl:value-of select="ns0:MT_EMPDETAILS/AddressLine2"/>
                </Address2>
                <City>
                    <xsl:value-of select="ns0:MT_EMPDETAILS/City"/>
                </City>
                <State>
                    <xsl:value-of select="ns0:MT_EMPDETAILS/State"/>
                </State>
                <Country>
                    <xsl:if test="function-available('ValueMap:getValueMapping')">
                        <xsl:value-of select="ValueMap:getValueMapping('http://sap.com/XI/xi', 'http://sap.com/XI/xi', 'Canonical','Country', 'KCRS', 'Country', $CountryCode, $inputparam, 'TRUE')"/>
                    </xsl:if>
                </Country>
                <ZipCode>
                    <xsl:value-of select="ns0:MT_EMPDETAILS/Zipcode"/>
                </ZipCode>
            </ns0:MT_EMPADDRESS>
        </xsl:template>
    </xsl:stylesheet>
    If the values are maintained using Value mapping replication technique
    Edited by: Ashok Reddy Thatigutla on Feb 15, 2008 9:43 AM
    Edited by: Ashok Reddy Thatigutla on Feb 15, 2008 9:44 AM
    Edited by: Ashok Reddy Thatigutla on Feb 15, 2008 10:06 AM

  • Function Call in mapping

    I have function call in some of my mappings. This call is for each record in the table. Because of this function call my mapping takes for ever to execute. Sometimes it does not come back at all it times out. This function returns text for each code. It concatenates text from a table for each code that is passed and returns one string. I have indexes created and have the table analyzed. I am not sure how to improve the performance. I have to have this function call. Can anybody suggest better solution.
    Thanks

    Hi
    Because of the lack of info I'll be as general as I can.
    Most functions running inside a mapping are working on a single row at a time, and assuming that your function is looking up details in another table before concatenating them, you can reasonably expect the function to be run once for every row in you source table. So take on the size of your source table, (count the records), multiply it by the size of your lookup table, and the time that takes to transverse it. It doesn't take long to realise the larger the tables the longer the wait.
    You can however do many things to remedy this.
    1. Make sure you use indexes on your lookup tables.
    2. Select a small data set to lookup from.
    3. When making multiple joins, link smallest to largest.
    4. If possible link using numeric or binary indexes.
    5. I possible create a smaller lookup data set (staging table) or do any major joins in an earlier mapping.
    There are many more, and I'm sorry if I appear to be stating the obvious.
    Chris

  • After update to Firefox 15 it crashes after javascript call window.close();opener.alert('test');. Is this working as intended or is it a bug?

    After update to Firefox 15 it crashes after javascript call from a popup window.close();opener.alert('test');. Is this working as intended or is it a bug?

    According to the pages linked to the crash ID, there is a bug report on this.
    Does the crash occur as soon as you run those two lines of code, or after dismissing the alert()?
    If this is your application, why are you running script commands after calling window.close()? Could you avoid the problem by using an approach like this:
    <br>window.setTimeout(function(){opener.alert('test'},250);
    window.close();

  • Stop native call from java

    I know there are topics related to timeout, stop or kill native call but it seems there is no good answer for me.
    I have a java class as the caller to call a native C function with double arrays as input. The C function perform some kind of computation using 3rd party FORTRAN functions. If we terminate the java, how to terminate/stop/or exit the C function?
    Here is the partial of java class
    public class PolyFit {
        public native double[] polyFit(int[]iParams, double[] dParams,
                                        double[] xx, double[] yy, int col);
        static {
            try {
                System.loadLibrary("polylib");
            } catch (UnsatisfiedLinkError e) {
                System.out.println ("Failed to load polylib");
                e.printStackTrace();
        public PolyFit() {
    }The parent java class is a sub class of Thread that calls the PolyFit when running as a thread:
        int col2 = 2;
        for() { //more than 1000 pairs of inputX and inputY
            //iParams, dParams, inputX, inputY are assigned before
             PolyFit polyFit = new PolyFit();
            double[]output = polyFit .polyFit(iParams, dParams, inputX, inputY, col2);
        }Here is native C function (partial)
    #include "PolyFit.h"
    JNIEXPORT jdoubleArray JNICALL Java_org_ciit_stat_PolyFit_polyFit
                (JNIEnv *env, jobject obj, jintArray ja, jdoubleArray jda,
                jdoubleArray jdinX, jdoubleArray jdinY, jint col) {
        jdouble *output;   
        jdoubleArray dbArray = (*env)->NewDoubleArray(env, MAX);
        (*env)->SetDoubleArrayRegion(env, dbArray, MIN, MAX, output);
       free(output);
        return dbArray;
    }Every call of polyFit .polyFit() may take less than 1 millisecond to several second. In case the time exceeds a threadhold, i.e. 10 second, we want to stop the thread. However, I can't find the way to stop or exit the C function.
    Any ideas are highly appreciated.

    This is C code, and since there is no portable way to interrupt C code, there's nothing that can be done. In Unix a SIGINT can do the trick, but only by killing the whole address space. There are some thread APIs that attempt to do this, but they are either very unsafe or require cooperation from the code which is being interrupted.
    Your best bet is to code your CPU-intensive code to check a global (or thread-specific) flag for a requested interrupt, and cleanly exit back to the JNI wrapper, returning a flag value to acknowledge the interruption. A wrapper routine around the native method can then throw a Java exception, or block and retry, or whatever you want it to do.
    Note that Thread.stop is deprecated. There is no earthly way to cleanly interrupt either Java or C code, unless it cooperates with the interrupter.

  • Native call with J2ME

    I can write native calls in C and use them in my J2ME applications. But if the application shall be integrated to a J2ME device, like a mobilephone, can the native calls then work on this device? This means the DLL (the native function) must be placed on the mobilephone.
    Thx /Denker

    Even more interesting, how whould you deploy your native bits (e.g. some sort of library) when you cannot even be sure whether your target does support a file system? Apart from that, I doubt you will get a programming API for your mobile phone (well, Symbian OS (e.g. Nokia 7650) provides one I think).

  • My 3GS crashes during phone calls over about 3 minutes, even after the upgrade to 5.0

    My 3GS crashes during phone calls over about 3 minutes, even after the upgrade to 5.o

    I've also got this annoying problem, but it seems to vary how long the phone wants to last before crashing - i think the longest conversation i've had with iOS4 is 15 minutes and it was an important phone call (my son was in hospital at the time and i was away on business)
    i was hoping that iOS4.2 would fix the problem, but alas nothing but more crashing..
    being a user of Apple products since 1984, having this trouble is pretty disappointing as i used to believe that Apple made a quality product..

  • Same message type calling 2 maps

    Hi Experts,
    I want to send same Idoc messagetype for two different partners and want to call different map. And these idocs are coming from same SAP system.
    Let say message type Orders , first partner PARTNER01 and second partner PARTNER02.
    For PARTNER01  partner message mapping name is MM1
    For PARTNER02  partner message mapping name is MM2.
    When SAP is sending the message for partner PARTNER01  it should call MM1 and it should not call MM2.
    Output files are also going to two different system.
    Could you please let me what are the configurations are required in ID?
    Thanks in advance for your valuable suggestion.
    Regards,
    Shubhankar

    Hi Shubhankar !
    You should enter your receivers (partner01 and partner02) in the receivers table of the receiver determination object. Here you can use the condition editor to detect which system should be the receiver based on content (payload, headers, etc.). Then to specify different mappings, you should create one interface determination object for each receiver system, in each interface determination object you should specify the interface mapping to be used. Please create one interface mapping object in repository for each mapping program (mm1 and mm2).
    Regards,
    Matias.

  • My ipad mini crashes during facetime calls.

    My ipad mini crashes during facetime calls. It happens 3 or 4 times during a 30 min call. My ipad restarts itself without any issues but why does it do this?

    (A) Close all apps in the multi-task window
    1.Double-click the Home button.
    2. Swipe the app's preview up to close it.
    (B) Try reset iPad
    Hold down the Sleep/Wake button and the Home button at the same time for at least ten seconds, until the Apple logo appears
    Note: Data will not be affected.

  • Phone crashes after every call

    My Droid crashes after every call.  I have to remove the battery and reboot the phone.  (Am running Droid 2.1).
    Verizon - this isn't even funny any more.  What's up with this?

    I haven't seen this before and it sounds really strange.
    Have you tried restoring you phone to "factory defaults". It is quite possible something that you have installed is conflicting somewhere, but it's really hard to guess what it might be.
    Also, while some of the VZW technical people do hang out here and answer questions, you're probably better off contacting VZW Customer Service with this one. You can reach them by dialing 611 on your mobile (which, in this case I wouldn't recommend) or at (800) 922-0204.
    jason

  • BE6000 Native Call Queuing Design Constraints?

    We see the doc wiki has not been updated with any UCM 9.0 native call queuing design constraints.  We would assume that the call queuing at a min would need to meet the MoH design constraint of 50 sessions, since you figure there is a high probability that one call will be queued in each of 50 queues with MoH playing with each.
    http://docwiki.cisco.com/wiki/Supported_System_Capacities
    Is there any other performance impact we should consider or can we ask the doc wiki be updated with design constraints around call queuing?
    Can the BU clarify is that is 50 simultanous MoH streams per cluster, or 50 per server?  We can eliminate the load by going to multicast and IOS distributed MoH for remote sites, but something tells me there probably is a max queued call ceiling we need to consider for this platform.

    At the risk of getting caught up in the pass-by-reference/pass-by-value debate :), simple values (ints chars etc). are passed as values, and modifying them on the C++ side of the procedure call will not modify the values on th java side.
    Possible solutions are:
    1)pass an array of (say) ints. Then, modifying individual values should modify the java-side values (much in the way that the Stream.read(byte[]) functions do.
    2)format up a strin g with your return values, return the string and parse it on the java side.
    3)have fields in the java side that are accessed and modified by your native call.
    4)pass an object with some fields in it. Have the C++ access and modify the object's fields.
    Hope this helps.

Maybe you are looking for

  • Converting videos for ipod trouble need help plz

    i always have to convert my videos for ipod but when i do, there is no more sound. how do i fix this?

  • Razr HD SD card not mounting after update to JB 4.1.2

    My Razr HD which i just got in March no longer recognizes the SD card installed. I have tried removing and reinserting and when the phone boots it sees the disk for all of about 2 minutes then it gives error stating that the card was removed or unmou

  • Periodic metalic clicks from the right side of MPB

    I started to get strange metalic clicks which appear periodically every 45 secs or so from right side of my 2 days old MBP. It is not the harddrive I'm sure which is on the left side but either the fan on the right or the DVD drive (keeps clicking wh

  • Computer CONSTANTLY restarts while editing with premiere and after effects

    Whenever i edit in premiere or after effects, my computer will always just randomly restart.  It normally does it more in after effects than premiere, but lately, it has been doing it a lot in premiere, sometimes as much as every 15 minutes.    Here

  • Purpose of the csx folder in Azure projects?

    I'm fairly new to Azure but I noticed that Visual Studio auto-creates the following folders (among others) /<nameOfAzureProject>/bin /<nameOfAzureProject>/obj /<nameOfAzureProject>/csx <== Now the bin and obj folders are fairly standard. But I'm not