Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Release Notes for SAP .NET Connector (NCo)
- ==========================================
- Please read the license terms and release notes carefully.
- --------------------------------------------------------------------------------
- This product is property of SAP AG. You are granted usage of this product in
- your development environment. Deploying this product with your application in a
- production environment is only valid with the sufficient amount of SAP Software
- Licenses according to the terms and conditions of SAP Software.
- THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
- SAP AG further does not warrant the accuracy or completeness of the information,
- text, graphics, links or other items contained within these materials. SAP AG
- shall not be liable for any special, indirect, incidental or consequential
- damages, including without limitation, lost revenues or lost profits, which may
- result from the use of these materials. The information in this software is
- subject to change without notice and does not represent a commitment on the
- part of SAP AG in the future.
- --------------------------------------------------------------------------------
- Release Notes 3.0.13
- * Bugfix: element type compatibility
- An RfcTypeConversionException was thrown when setting a structure as a field, parameter,
- or attribute value even though the respective data types are the same. This issue happened
- after clearing or loading metadata and when retaining a structure from the time before
- loading or clearing and setting it on a container created after clearing or loading.
- * Bugfix: saplogon.ini parameters
- When using saplogon.ini as source of logon parameters, entries of the form [Origin]=MS_SEL_SERVER
- did not work correctly, resulting in the error message "group name too large".
- * Bugfix: loss of trailing white space
- Trailing white space characters other than SPACE (0x20) disappeared from values of CHAR fields.
- * Bugfix: SNC connectivity
- When a backend was configured to allow SNC connections only via the 48XX ports, NCo failed to
- establish the connection.
- * Bugfix: Metadata lookup in connection with custom destinations
- When using custom destinations without one or more designated repository destinations and changing
- backend users/passwords, metadata lookup may have failed.
- * Bugfix: Destination configuration
- The default IDestinationConfiguration implementation, which is using app.config did not support
- the following configuration parameters for destinations: REPOSITORY_USER, REPOSITORY_PASSWD,
- USE_SYMBOLIC_NAMES, and ALIAS_USER
- * Enhancement: RfcServerContextInfo
- RfcServerContextInfo was enhanced to expose the RfcServer instance which is processing the incoming
- request as property Server.
- * Enhancement: General configuration
- With the property GeneralConfiguration.DisableWily it's possible to disable
- Wily for the NCo application. See API documentation for details.
- In addition, the GeneralSettings section in app.config has been extended
- to support disableWily.
- * Enhancement: General configuration
- With the property GeneralConfiguration.CPICMaxConnections it's possible to
- configure the maximum number of CPIC connections for the NCo application.
- See API documentation for details.
- In addition, the GeneralSettings section in app.config has been extended
- to support cpicMaxConnections.
- * Enhancement: General configuration
- With the property GeneralConfiguration.CPICKeepAlivePingInterval it's possible
- to configure the interval for RfcServer connection keep alive messages.
- See API documentation for details.
- In addition, the GeneralSettings section in app.config has been extended
- to support cpicKeepAlivePingInterval.
- * Enhancement: Destination Management
- Class RfcDestinationManager now offers a static method IsDestinationConfigurationRegistered to check
- whether a destination configuration (other than the default configuration read from app.config) was
- registered. See API documentation for details.
- * Enhancement: Server Management
- Class RfcServerManager now offers a static method IsServerConfigurationRegistered to check
- whether a server configuration (other than the default configuration read from app.config) was
- registered. See API documentation for details.
- --------------------------------------------------------------------------------
- Release Notes 3.0.12
- * Bugfix: tracing
- Setting trace level 2 or higher (or trace level PublicAPI) in connection
- with TRfc incurred a NullReferenceException.
- * Bugfix: time and date values
- Time/date conversion errors caused by the Japanese calendar have been fixed
- by (explicitly) using the invariant culture (and hence the Greogrian calendar)
- at all times.
- * Bugfix: runtime
- It could happen that even function invocations have been canceled running
- within sessions that are still alive.
- * Bugfix: Memory consumption
- In applications that used many short-lived threads, a memory leak occurred due to
- the fact that thread local storage memory in unmanaged code was not freed when the thread
- was released.
- * Improvement: function serialization performance
- Performance issues notable when transmitting large amounts of structured
- data in exporting, importing or changing parameters that contain single fields with a
- major part of this data amount.
- * Improvement: initial field values
- Validity checks for strings representing initial date/time are now
- less stringent to take into account ABAP's lax treatment of such values
- * Enhancement: data type conversions
- Fields, parameters, or attributes with ABAP data type STRING or CHAR
- now have setters and getters for integer types (Byte, Int16, Int32, and Int64).
- Consult the API documentation for details.
- --------------------------------------------------------------------------------
- Release Notes 3.0.11
- * Bugfix: Logon Language
- The conversion routine that converts ISO into SAP language wrongly relied
- on upper-case language codes, but was given, and tried to work with, lower-case codes.
- * Bugfix: Delta Manager
- An RFC client request failed with an "RfcAbapRuntimeException: Invalid Delta Manager
- object ID (2 <=> 1)". On ABAP side a shortdump CALL_FUNCTION_OBJECT_ID with the same
- error message is recorded in ST22. Reason for thsi was that the NCo client was
- trying to execute a stateful sequence of RFMs, some of which reused the same internal
- table. The stateful connection broke down - e.g. because of a network error - but the
- client tried to continue the sequence. NCo took a fresh (stateless) connection for the
- following requests, but reused the delta manager object IDs from the stateful connection.
- This led to an object ID mismatch in the ABAP backend system.
- * Bugfix: sapogon.ini integration
- SapLogonIniConfiguration accidentally interpretes the saplogon.ini entry
- as being of type "message server logon". This leads to a mismatch of the required
- logon parameters.
- * Bugfix: configuration
- The configuration property REPOSITORY_USER was not working as desired, the
- value had been simply ignored even for repository connections.
- * Bugfix: CPIC connection management
- Hanging server connections caused by a bug in the CPIC layer has been fixed
- as described in note 1791529. The relevant patch level is included in NCo 3.0.11.
- * Improvement: Performance tracing
- Introduction of flag for performance tracing as additional possibility
- for simple trace analysis.
- * Improvement: Monitoring
- Enhancements of destination monitoring. See API documentation
- of RfcDestinationMonitor for details.
- * Improvement: Monitoring
- Introducing repository monitoring. See API documentation of
- RfcRepositoryMonitor for details.
- * Improvement: Configuration
- A designated timeout for idling repository connections was introduced.
- See API documentation of RfcConfigParameters.RepositoryConnectionIdleTimeout for details.
- * Improvement: Configuration
- Loading the default configuration has now a built-in recovery mechanism
- in case a ConfigurationErrorsException occurs while loading. See API documentation of
- RfcConfigParameters for details.
- * Enhancement: Security
- It is now possible to pass passwords as SecureString to a destinaton. For
- that an implementation of IDestinationConfiguration can set the password into the
- returned RfcConfigParameters instance. See API documentation of
- RfcConfigParameters.SecurePassword for details.
- --------------------------------------------------------------------------------
- Release Notes 3.0.10
- * Bugfix: binary incompatibility in public API
- After applying NCo 3.0.9, a System.MissingMethodException with the text
- "Method not found: 'System.String SAP.Middleware.Connector.RfcDestination.get_Name()'"
- was thrown when trying to use an existing NCo application with it. However,
- when compiling the application again, everything works fine. This was caused by some
- source code compatible change that was not binary compatible: The public read-only
- property Name was changed to be a public read-only field. In order to fix the issue,
- the source code compatible change was adjusted so that it is now binary compatible
- again.
- --------------------------------------------------------------------------------
- Release Notes 3.0.9
- * Bugfix: Replacing expired SSO2 tickets
- Expired SAP SSO2 tickets could not be replaced with valid tickets without
- rendering the affected destinations invalid, and hence losing the entire connection
- pool as well as open connections, because there was no explicit mechanism for
- "on the fly" replacement of expired tickets and implicit mechanisms like used
- in JCo were simply not possible due to the .NET implementation of Dictionary.
- With patch level 3.0.9, a mechanism for replacing expired SSO2 tickets was added
- that leaves destinations and their connections intact. See API documentation of
- RfcConfigParameters.UpdateSSO2Ticket and IDestinationConfiguration.GetParameters
- for details.
- * Bugfix: Interchangeable metadata
- Data containers (tables, structures, or ABAP objects) had been rejected if they
- were taken from a repository that is different from the repository of the target
- container, even though the metadata has been identical (but from different
- repositories). NCo3 employed instance equality to check for compatibility of
- data containers, which implied that identical metadata (taken from the same
- repository) has been required to pass the compatibility check.
- The compatibility check of data containers is now less restrictive and also
- admits data containers with equivalent metadata that do not necessarily have
- to originate in the same repository.
- * Improvement: destanation configuration exceptions
- When not specifying required configuration parameters, e.g. the SYSID, when
- trying to connect via load balancing, a very low level exception had been thrown,
- in which it was not immediately clear, why the connection could not be
- established. Now, there are early checks and in case of a configuration issue,
- a descriptive RfcConfigurationException is informing in detail about the
- configuration issue.
- --------------------------------------------------------------------------------
- Release Notes 3.0.8
- * Bugfix: destination configuration
- Changing the trace level of a destination by modifying the configuration of
- the destination had no effect on property TraceLevel for that destination,
- even when a configuration update event was fired.
- * Bugfix: destination configuration
- Using the connection parameter CharacterFaultIndicatorToken incurred an
- RfcInvalidParameterException, as the 4-digit string value was attempted to be
- parsed as a 1-byte integer.
- * Bugfix: repository persistence
- Deserialized table metadata (using RfcRepository.Load) and all containers
- using it might exhibit iconsistent behavior; e.g., (table) parameter values
- might be empty where a non-empty table was expected, because the table
- metadata obtained through RfcRepository.Load was not properly set up.
- * Bugfix: server runtime
- In the server case, received parameters might not be deserialized (e.g., the
- TID transmitted in the context of ARFC_DEST_CONFIRM was an empty string). This
- issue was hard to reproduce since it was happening rarely and randomly.
- Typically, the issue was most likely to occur if there was only one server
- connection (i.e., REG_COUNT=1).
- * Bugfix: destination management runtime
- Destinations were replaced (shown as REPLACED in trace files) even though the
- destination configuration did not change. However, critical parameters that
- warrant a destination replacement were provided by the configuration in a
- non-normalized manner; for instance, SYSNR="5" (instead of SYSNR="05").
- Those were considered modified, as the destination always holds normalized
- values, whereas the configuration may provide values that were not normalized
- and hence different.
- * Bugfix: SAPRouter string handling
- When trying to establish a connection to an ABAP system, which is configured
- to use load balancing, the connection shall be established via a SAPRouter, and
- the saprouter string has a trailing /H/, establishing the connection failed.
- * Enhancement: Support for saplogon.ini
- Applications that want to reuse logon parameters maintained in a saplogon.ini
- file on the current host can do so now. For a complete documentation of the
- new feature see the API documentation of class
- SAP.Middleware.Connector.SapLogonIniConfiguration.
- * Enhancement: new property on IRFCParameter
- Introduction of property IRfcParameter.DefaultValue. See API documentation
- for details.
- * Enhancement: logging
- The dev_nco_rfc.log file entries were enhanced to contain the process ID so
- that it's easier to correlate them with the corresponding trace files.
- * Enhancement: logon procedure
- Improved logon procedure for languages available in Unicode SAP systems only.
- Some languages like Armenian, Georgian, Vietnamese, Macedonian and many
- others are available in Unicode SAP systems only. If logging on with such a
- language to an SAP ABAP backend system, it was mandatory to specify an
- additional destination configuration parameter like RfcConfigParameters.Codepage
- (CODEPAGE) which was indicating a unicode communication type, otherwise such
- logons failed with an RfcLogonException showing the error message "Select
- one of the installed languages" although the appropriate language was installed.
- This logon procedure has been improved so that it does not require any
- additional communication code page destination property anymore in this case.
- The unicode communication type is now automatically detected and used for
- logging on with such new SAP system language keys. Please see note 895560
- (https://service.sap.com/sap/support/notes/895560) for details on languages
- that are only available in Unicode SAP systems.
- * Enhancement: DNS caching configuration
- With the new properties GeneralConfiguration.DNSCacheTTL and
- GeneralConfiguration.DNSNegativeCacheTTL it is possible to configure the
- behavior of the DNS caches in NI. See API documentation for details.
- In addition, the GeneralSettings section in app.config has been extended
- to support dnsCacheTTL and dnsNegativeCacheTTL.
- * Enhancement: CPIC tracing
- Instead of having to set the environment variable CPIC_TRACE for turning on
- CPIC trace, NCo now offers GeneralConfiguration.CPICTraceLevel. Thus, it is
- possible to adjust the CPIC trace level at runtime without having to restart
- the executable. See API documentation for details. In addition, the
- GeneralSettings section in app.config has been extended to support
- cpicTraceLevel.
- --------------------------------------------------------------------------------
- Release Notes 3.0.7
- * Bugfix: monitoring
- RfcDestinationMonitor.GetConnectionsData() always returned an empty list. Now,
- all RfcConnectionData belonging to the destination are returned in a list.
- * Bugfix: repository - dynamic metadata lookup
- When using RFC_METADATA_GET for roundtrip optimization, the metadata might be
- faulty (e.g., character fields had the wrong length). This happened
- exclusively in connection with parameter metadata in the case when the type of
- the parameter was a predefined type (defined through a predefined field of a
- structure).
- * Bugfix: connection management
- Peak connection limit was exceeded although the number of active connections
- did not exceed that limit. This happened after communication failures
- (RfcCommunicationException), because those connections were not removed from
- the list of active connections. Eventually, that list is clogged up with
- invalid connections.
- * Bugfix: communication runtime
- When not configuring the language in a destination, English was used instead
- of the default language as configured for the corresponding user in the
- backend. In case there is no language provided through the configuration,
- the NCo runtime internally added English as configured value for the language,
- which was not correct.
- * Bugfix: communication runtime
- An ArgumentOutOfRangeException with the message "Length cannot be less than zero"
- was thrown when invoking a function module a function module that is implemented
- on top of VM container, i.e. a function module implemented in Java,
- e.g. CFG_API_CREATE_CONFIG. The call stack of the exception was similar to the one
- below
- Parameter name: length
- at System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy)
- at SAP.Middleware.Connector.RfcConnection.ReadRfcCDestination(Int32 length)
- at SAP.Middleware.Connector.RfcConnection.ReadUpTo(RFCGET readState, RfcFunction function, RFCID toRid)
- at SAP.Middleware.Connector.RfcConnection.RfcReceive(RfcFunction function)
- at SAP.Middleware.Connector.RfcFunction.RfcDeserialize(RfcConnection conn, IRfcIOStream stream)
- at SAP.Middleware.Connector.RfcFunction.RfcCallReceive(RfcConnection conn, IRfcIOStream stream, RFCID rid)
- at SAP.Middleware.Connector.RfcFunction.RfcCallReceive(RfcConnection conn)
- at SAP.Middleware.Connector.RfcFunction.Invoke(RfcDestination destination)
- Now, NCo was made aware of the slightly different behavior of the VMC runtime
- that caused this failure.
- * Improvement: Monitoring
- Assigning a value of 0 to environment variable Cor_Enable_Profiling did not
- disable Wily (and therefore did not prevent the creation of a possibly unwanted
- client passport handler), because only 0x0 was accepted as valid value.
- Now, various representations of the value 0 are recognized.
- * Bugfix: date serialization
- Initial dates transmitted via xRfc as four spaces, a hyphen, two spaces,
- a hyphen, and two spaces, incurred a conversion error.
- * Bugfix: multithreading with RfcDestinationManager
- One or more NullReferenceException exceptions with message
- "Object reference not set to an instance of an object" were thrown when
- calling RfcDestinationManager.GetDestination or RfcRepostory.CreateFunction
- concurrently from multiple threads. RfcDestinationManager.GetDestination
- was changed to be implemented fully thread-safe.
- * Bugfix: server runtime
- Server restart was not working as expected. A server remained disconnected,
- even if a registration with the gateway should work. The restart check has
- been improved so that server restart is working as expected.
- * Enhancement: configuration enhancement
- The use of roundtrip optimization can be configured in the GeneralSettings
- section via attribute useRoundtripOptimization. Values "on" or "true" switch
- on roundtrip optimization for all repositories, whereas "off" or "false"
- switch it off. (These string values are case-insensitive). In the absense
- of the attribute (or the entire section), or if any other value is supplied,
- the backward compatible default behavior is applied. See API documentation
- of RfcRepository.UseRoundtripOptimization for details.
- * Enhancement: security configuration enhancement
- The new configuration parameter SNC_SSO for destinations allows turning off
- the SSO behavior of SNC setups. More details are available in note 1701870:
- https://service.sap.com/sap/support/notes/1701870.
- --------------------------------------------------------------------------------
- Release Notes 3.0.6
- * Improvement: SystemAttributes
- If the backend is down while someone tried to retrieve the SystemAttributes
- from the corresponding destination for the first time, the attributes remained
- empty forever, leading to System.ArgumentNullExceptions when trying to access
- them. Now, NCo updates fields containing null on later access.
- * Bugfixes: Multithreaing and NullReferenceExceptions
- In a multi-threaded scenario a NullReferenceException might erratically occur
- when starting parallel sessions through RfcSessionManager.BeginContext (and
- using the default session provider) or in RfcDestinationManager.GetDestination().
- To avoid those race conditions, some internal methods have been synchronized.
- * Enhancement: initial values for fields
- When trying to set a byte array containing only 0 bytes to a DATE or TIME field,
- a RfcTypeConversionException occured, as this value was conisdered invalid.
- Now, 0 bytes are no longer considered an invalid date or time. Instead they are
- considered to signify 'initial' which translates to "00000000" or "000000",
- respectively.
- * Bugfix: configuration update for RfcConfigParameters.SAPSSO2Ticket
- Existing destinations were not affected by modification of configuration parameter
- RfcConfigParameters.SAPSSO2Ticket, regardless of whether the registered destination
- configuration fires a change event or not. This was due to a bug in the handling
- of this parameter: RfcConfigParameters.SAPSSO2Ticket was not treated as a
- parameter that should trigger a replacement of destinations (i.e., invalidating
- existing destinations and creating new ones in their place).
- As a matter of fact, no action was taken whenever that parameter changed.
- * Bugfix: SAPGUI with RFC
- When making RFC with SAPGUI dialog by using a destination with USE_SAPGUI=1 (or 2),
- the RFC call failed with an RfcAbapRuntimeException "Starting of SAPGUI failed".
- In SAPGUI, an error message like "partner '192.168.13.75:3200' not reached.
- WSAEWOULDBLOCK: resource temporarily unavailable" was also shown.
- If there exists a NAT-like firewall between the frontend and the SAP backend
- system, the SAP application server may have an internal IP-address for accessing
- the server behind the firewall and an external IP-address for accessing the
- server from outside. When trying to start the SAPGUI session during setting up an
- RFC connection with SAPGUI dialog, NCo 3.0 mistakenly passed the internal
- IP-address, instead of the external IP-address, to the SAPGUI and this caused the
- SAPGUI to fail to reach the application server. NCo now ensures to pass the
- external address, under which it knows the partner system, to the SAP GUI startup
- call so that the SAP GUI succeeds to establish the connection.
- * Bugfix: CPIC layer fix
- In certain situations, very often in conjunction with the use of VPN, one or more
- of the following exceptions are thrown:
- a) System.FormatException with different messages.
- b) SAP.Middleware.Connector.RfcCommunicationException with a message like this:
- LOCATION CPIC (TCP/IP) on local host with Unicode
- ERROR client with wrong appc header version rejected
- TIME Wed Dec 07 23:15:31 2011
- RELEASE 720
- COMPONENT CPIC (TCP/IP) with Unicode
- VERSION 3
- RC 246
- MODULE r3cpic.c
- LINE 8554
- DETAIL client version 6, gateway version 120 (165.130.193.210/3385)
- COUNTER 2
- The bug causing this in the underlying CPIC library has been fixed. Find more
- details in note 1664732: https://service.sap.com/sap/support/notes/1664732.
- * Bugfix: destination management
- Getting a destination via RfcDestinationManager.GetDestination using
- RfcConfigParameters a second time with modified parameters (but with the same
- name) returned the destination with the original outdated parameters. Now, the
- correct set of parameters is returned.
- * Bugfix: destination configuration RfcConfigParameters.MaxPoolWaitTime (MAX_POOL_WAIT_TIME)
- Setting the parameter MAX_POOL_WAIT_TIME (or RfcConfigParameters.MaxPoolWaitTime)
- had no effect. The value of MaxPoolWaitTime is now taken into account.
- *Note* that after the fix MaxPoolWaitTime is measured in milliseconds, which
- is also reflected by the API documentation.
- * Bugfix: connection monitoring
- When using RfcConnectionMonitor.GetConnectionsData no idle connections (retained
- for possible later use) were returned.
- Now, besides active (stateless) connections and stateful connections, also "pooled"
- connections (i.e., connections that are idle but retained for later use) are
- returned. Note that property State as well as the associated int constants
- of class RfcConnectionData have been deprecated. We recommend to replace State
- with property CurrentState (which makes use of an enumeration) and discontinue
- the use of the int constants as soon as possible.
- * Bugfix: CPIC tracing
- The CPIC trace file generated by NCo 3.0 processes didn't contain CPIC function
- calls nor the CPIC payload regardless of CPIC trace level, because the CPIC
- tracing functionality of CPIC library was suppressed for client connections.
- * Enhancement: repository persistence
- Repositories (metadata caches) can be saved to and loaded from a resource of your
- choice. That way, startup time of an application can be reduced significantly
- if expensive metadata lookup is involved. However, keeping the saved
- repositories up-to-date is the application's responsibility.
- * Enhancement: destination management
- RfcDestinationManager.GetDestination(string) could solely be used if an
- IDestinationConfiguration was present. Now this method can also be used to
- retrieve a destination created with RfcConfigParameters, effectively getting
- the destination by its name without the necessity to set up RfcConfigParameters
- containing the name only.
- * Enhancement: WMI provider
- In the .NET 4.0 variant, NCo 3.0 now offers a WMI data provider that can be
- used for monitoring and analysis purposes. Details can be found in the
- documentation.
- --------------------------------------------------------------------------------
- Release Notes 3.0.5
- * Bugfix: Crash introduced with 3.0.4
- The .NET application using NCo simply terminated with the following exception:
- System.InvalidOperationException was unhandled
- Message: Queue empty.
- at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
- at System.Collections.Generic.Queue`1.Peek()
- at SAP.Middleware.Connector.RfcConnectionPool.RemoveTimedoutConnections(DateTime now)
- at SAP.Middleware.Connector.RfcConnectionPool.CheckConnectionTimeout(Object state)
- at System.Threading._TimerCallback.TimerCallback_Context(Object state)
- at System.Threading.ExecutionContext.Run(ExecutionContext executionContext,
- ContextCallback callback, Object state)
- at System.Threading._TimerCallback.PerformTimerCallback(Object state)
- This happened in the timeout checker, when the pool was getting empty.
- Unfortunately, the timeout checker routine did not catch all exceptions so
- that the Thread running that timer crashed and with it the whole .NET
- application. The timeout checker was adjusted to check the pool state without
- causing exceptions, and in addition it catches all exceptions that might occur
- due to error situations to avoid further undesired terminations of the NCo
- application.
- --------------------------------------------------------------------------------
- Release Notes 3.0.4
- * Bugfix: configuration with app.config
- When specifying a GenerelSettings section in the app.config file, but
- not the parameter traceDir in it, the application aborted with the
- following error message:
- Could not initialize configuration: System.ArgumentNullException: String
- reference not set to an instance of a String.
- Parameter name: source
- at System.Globalization.CompareInfo.IsSuffix(String source, String suffix,
- CompareOptions options)
- at System.String.EndsWith(String value, StringComparison comparisonType)
- at System.String.EndsWith(String value)
- at SAP.Middleware.Connector.RfcTrace.Initialize(String directory,
- Boolean perThread, String encoding)
- The configuration parser was enhanced to accept such a valid configuration.
- * Bugfix: server runtime
- An attempt to obtain the function list from a server (e.g. by using
- Extras/Function List for a destination in SM59) incurred a
- RfcInvalidParameterException as the implementation of RFC_DOCU to gain
- access to a non-existent parameter "RFCDOCU" instead of "DOCU".
- * Bugfix: serialization and compression
- When sending documents to an NCo Server, an exception like
- "RfcSerializationException: End mark of RFCID.NotUsed (0x0000) not found."
- occured. The documents were sent concurrently via tRFC and produced a heavy
- load in a server running several threads. The documents required compression
- due to their size. When exchanging data between managed and unmanaged code
- sections data could get lost if the garbage collector re-arranged memory
- due to heap fragmentation. Thus, the decompressed tRFC datastream started
- with many 0 bytes, which eventually resulted in the RfcSerializationException.
- Now, the code which is exchanging the data between managed and unmanaged code
- sections was adjusted to react correctly in case the garbage collector
- re-arranged memory due to heap fragmentation.
- * Bugfix: SAPRouter string handling
- When trying to establish a connection to an ABAP system, which is configured
- to use load balancing and the connection shall be established via a SAPRouter,
- an exception occurred without any detail message.
- * Bugfix: WCF service support
- If the .NET application runs as a WCF Service, the initialization of NCo
- aborted with the exception
- "Could not initialize configuration:
- System.ArgumentException: exePath must be specified when not running inside
- a stand alone exe.
- at System.Configuration.ConfigurationManager.OpenExeConfigurationImpl
- (ConfigurationFileMap fileMap, Boolean isMachine,
- ConfigurationUserLevel userLevel, String exePath)
- at System.Configuration.ConfigurationManager.OpenExeConfiguration
- (ConfigurationUserLevel userLevel)
- at SAP.Middleware.Connector.RfcConfigParameters..cctor()"
- This happened, because within a WCF Service, the application configuration needs
- to be looked up differently, even differently compared to ASP .NET where
- typically a HttpContext is available, which is not the case for WCF.
- Hence, NCo did not recognize to run within a WCF Service context, and therefore
- could not look up the application configuration. Now, NCo checks whether a
- VirtualPathExtension exists, assumes in this case to run within a WCF Service,
- and opens the web configuration using the virtual path.
- *Note:* the solution for this problem is available only in the .NET 4.0 variant
- of NCo 3.0.4. If you are using the .NET Framework 2.0, you can, as a workaround,
- add the following parameter to the configuration of your WCF Service:
- <system.serviceModel>
- <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
- </system.serviceModel>
- * Bugfix: function serialization
- Invoking function modules involving basXML may incur a RfcSerializationException
- or other kinds of exceptions in conjunction with a RABAX on the ABAP side, if
- the exchanged data amount was exceeding a certain (rather small) threshold.
- The basXML parser and renderer were fixed to deal with larger amounts of data
- correctly.
- * Enhancement: tracing
- RFC trace can now be activated by setting the environment variable RFC_TRACE.
- Valid values are the same as for the app.config parameter "defaultTraceLevel":
- see section "General Configuration Parameters" in Appendix A of the NCo
- Programming Guide.
- * Enhancement: Delta management
- Support for delta management for table paramaters has been introduced for client
- communication. Thus, the performance is improved dramatically for certain use
- cases, in particular if the table sent to the ABAP system is hardly modified or
- not at all.
- * Enhancement: Support for special destination "BACK".
- "BACK" is only usable within a NCo server function and allows to execute a
- function module in the context of the caller and simply re-uses the connection
- over which the server function has been received. The newly introduced constant
- RfcDestination.BACK can be used to retrieve the destination object instance.
- * Enhancement: Supportability
- A default passport handler has been introduced to be used in connection with
- Wily (code instrumentation). If Wily is installed and enabled (environment
- variable Cor_Enable_Profiling=0x1) and no passport handler was set by the
- application, the Wily-specific passport handler is active and reads a passport
- from the thread local data slot named "SAP-PASSPORT-OUTBOUND" (if available),
- making it available through IRfcClientPassportHandler.OnCallStart. Conversely,
- IRfcClientPassportHandler.OnCallEnd puts the passport into the named data slot
- "SAP-PASSPORT-OUTBOUND-LASTUSED".
- --------------------------------------------------------------------------------
- Release Notes 3.0.3
- * Bugfix: IMPORTING/EXPORTING parameter handling
- Older ABAP releases allow IMPORTING and EXPORTING parameters with the same name,
- thus emulating CHANGING parameters. However, NCo threw an
- RfcInvalidParameterException in such a case, because it did not did not accept
- duplicate parameter names. Now, such situations are treated like a single
- CHANGING parameter.
- * Bugfix: server function runtime
- When trying to use the repository inside a server function implementation via
- RfcServerContext.Repository, the program crashed with a
- System.StackOverflowException. The property has been fixed not to refer to
- itself again.
- * Bugfix: Exception handling
- If one or more logon parameters were missing when trying to connect to a SAP
- ABAP system, an RfcAbapRuntimeException instead of an RfcLogonException is thrown.
- * Bugfix: Server tracing
- RFC servers always used the global trace level, not the server-specific trace
- level defined in the corresponding configuration parameters.
- * Enhancement: initial values for fields
- An RfcTypeConversionException was thrown when trying to set a byte array
- consisting of "zeroes only" to a BCD or NUM field, as this value was considered
- invalid. However, it can be seen as valid initial value, and therefore NCo
- now accepts it as one.
- * Bugfix: destination configuration - timeouts
- When using the destination configuration parameters IdleTimeout/IDLE_TIMEOUT
- or IdleCheckTime/IDLE_CHECK_TIME, it seemed as if random values were used
- for them. This happened, because they had accidentally been treated as global
- parameters instead of as per-destination parameters. Thus, all destinations
- had been using the parameters of the destination that had been adjusted last.
- Moreover, when using IdleCheckTime/IDLE_CHECK_TIME a NullReferenceException
- could occur. Now, this has been corrected.
- * Bugfix: compression
- When sending very large IDocs to an NCo Server, an exception like
- "RfcSerializationException: End mark of RFCID.######## not found." was
- occurring. Examples for ####### were "TableContLZ (0x0305)",
- "NotUsed (0x0000)", or "XMLData (0x3C05)". NCo's decompression logic was
- redesigned to avoid these situations.
- * Bugfix: RfcServer state
- When an RfcServer received an RfcCommunicationException with the information
- that the connection to partner is broken, because the network connection to
- the gateway was lost, and this happened for all existing connections,
- the server state remained "Running", instead of turning its state to "Broken".
- After the network was available again, the server connection did still no
- longer work. The server state changes and restart mechanism were adjusted to
- recognized such situations. Now, it is recognized when all connections are
- dead, and the state is changed to "Broken". This is logged as an info message
- in dev_nco_rfc.log. Another log entry is written as soon as the server has
- recovered and returned to state "Running" again.
- * Enhancement: Tracing
- The bgRFC Unit IDs in NCo traces and the ones available in bgRFC monitors on
- ABAP side did not match. Nevertheless, bgRFC worked fine as this was only
- caused by the difference how the Unit IDs were traces on both ends. Now,
- the traced unit IDs match.
- * Enhancement: Data Binding
- DataBinding support for structured types. Find more details in the programming
- guide in chapter "Using Data Binding in Windows Forms"
- * Enhancement: new API methods
- - new constructors for RfcAbapRuntimeException and RfcAbapMessageException.
- - property TraceLevel in RfcServer class.
- - method SetDestination() in RfcCustomRepository class.
- Find details in the API documentation.
- --------------------------------------------------------------------------------
- Release Notes 3.0.2
- * Enhancement: support for bgRFC units
- bgRFC support is introduced with NCo 3.0.2. Check the API documentation for
- details.
- * Enhancement: codepage converters
- Using special SAP codepages, such as blended codepages, did not work: An error
- message like "Invalid SAP Codepage 6110" was displayed. For other codepages
- the SAP special characters had been destroyed during conversion. This happened
- because Blended codepages (Starting with a 6 in the 4-digit name, e.g. 6110)
- are not supported by the standard codepage converters of .NET. The same is
- true for SAP special characters. SAP-specific codepages are now supported by
- integrating SAP codepage converters. Through an additional configuration
- parameter - RfcConfigParameters.UseSAPCodepages (USE_SAP_CODEPAGES) - a list
- of codepages can be specified for which SAP converters are employed instead
- of the .NET converters. Check the API documentation for details.
- * Bugfix: server configuration events processing corrected
- Despite updating a server configuration and firing a change event an affected
- (running) server did not react properly and did not adjust itself
- automatically as expected due to a bug in event processing.
- * Bugfix: stateful server behavior
- After setting all connections of a server to stateful the server could no
- longer be reached by additional clients. Establishing the connection timed
- out even though the RfcServer program was only idling, because the server
- did not start additional stateless connections if a server connection got
- stateful. Thus, all connections were blocked. Now, the RfcServer opens
- additional stateless connections for every server connection that turns
- stateful. The maximal number of additional connections is limited by the
- new configuration parameter RfcConfigParameters.MaxRegistrationCount
- (MAX_REG_COUNT).
- See API documentation for details.
- * Bugfix: server exception handling
- Whenever a server function threw a "good" ABAP exception the server
- connection hung, because it did not enter the correct state so that
- processing could not continue properly.
- * Bugfix: special time and date values
- The time value 24:00:00 considered valid by ABAP was rejected by NCo 3.0.
- The same was true for a few other peculiar ABAP date and time values. Now,
- those values are accepted as valid.
- --------------------------------------------------------------------------------
- Release Notes 3.0.1
- * Bugfix: runtime initialization
- In certain client scenarios a problem in the initialization order of the
- .NET framework leads to the .NET Connector being unable to login to the
- SAP system. (Error message "invalid user or password", even though the
- credentials are ok.)
- * Bugfix: codepage assignment 1100
- Codepage 1100 is now mapped to ISO-Latin-1 instead of Cp1252.
- * Bugfix: compression
- In a long-running process, which is sending/receiving many calls with
- compressed tables, the calls may fail with an RfcSerializationException.
- * Enhancement: server configuration RfcConfigParameters.SystemIDs, SYS_IDS
- The server configuration now contains a new property allowing to restrict
- access to this server to a certain selection of SAP backend systems
- identified by Sys-ID. See property "RfcConfigParameters.SystemIDs".
- * Enhancement: Dedicated .NET 4.0 variant
- Support for Microsoft .NET Framework 4.0. a dedicated NCo 3.0 version for
- .NET 4.0 is now available for download
- --------------------------------------------------------------------------------
- Release Notes 3.0
- SAP .NET Connector 3.0 brings a complete redesign of the NCo API and a new
- architecture that also requires some redesign of the applications using NCo.
- But as you will learn when getting more used to it, it is worth redesigning
- your applications so that they can use the new .NET Connector 3.0.
- The redesign of NCo is the result of a long experience with NCo 2.0 as well
- as with SAP Java Connector 2.1 and 3.0.
- In particular, important improvements are:
- * NCo 3.0 is more stable, robust, and more secure
- * It enforces a better design of your application by decoupling the
- connection handling from the .NET application proper
- * It encourages separation of concerns: infrastructure embedding is clearly
- separated from business application logic
- * NCo 3.0 reduces memory consumption at runtime
- * It Allows dynamic programming without the need for proxy generation
- * It can dynamically look up metadata (so if something changes in the
- related ABAP system - e.g. if parameters in a function module signature
- are added or the ABAP system is switched from Non-Unicode to Unicode, you
- no longer need to regenerate the proxies and recompile your solution)
- * NCo 3.0 is no longer bound to a special Visual Studio version.
- NCo 3.0 also adds some more features:
- * Full BgRFC support, the successor of tRFC/qRFC
- * Support for bASXML serialization in protocol
- * Monitoring APIs
- * Support for DECFLOAT data types
- * Support for ABAP condition "IS SUPPLIED"
- --------------------------------------------------------------------------------
- Copyright © 2010-2014 SAP AG. All Rights Reserved.
Advertisement
Add Comment
Please, Sign In to add comment