PcMiler Failing Lookup For City With An Apostrophe. (Doc ID 1293455.1)

Last updated on JULY 09, 2014

Applies to:

Oracle Transportation Management - Version: 5.5.04 to 6.2.2 - Release: 5.5 to 6.2
Information in this document applies to any platform.

Symptoms


OTM fails to calculate the distance using PCMILER when using a source city with an apostrophe (etc., L'ASSOMPTION), the following error occurs.

ERROR
-----------------------
ejb.Lane records not found: sql=select l.x_lane_gid from lane l, x_lane x where l.x_lane_gid = x.x_lane_gid AND source_hname_set_gid in ( select hname_set_gid from hname_set_member where hname = ? ) AND x.source_geo_hierarchy_gid = ? AND dest_hname_set_gid in (select hname_set_gid from hname_set_member where hname = ? ) AND x.dest_geo_hierarchy_gid = ?, sqlValues=
Could not retrieve LANE(s)

at glog.util.remote.BeanManagedEntityBean.executeFindAll(BeanManagedEntityBean.java:1046)
at glog.util.remote.BeanManagedEntityBean$12.execute(BeanManagedEntityBean.java:493)
at glog.util.remote.BeanManagedEntityBean.dbModify(BeanManagedEntityBean.java:1066)
at glog.util.remote.BeanManagedEntityBean.doFindMultipleSQL(BeanManagedEntityBean.java:491)
at glog.util.remote.BaseEntityBean$11.doIt(BaseEntityBean.java:765)
at glog.util.remote.BaseEntityBean.ejb(BaseEntityBean.java:798)
at glog.util.remote.BaseEntityBean.ejbFindSQL(BaseEntityBean.java:763)
at glog.ejb.lane.ejb_Lane_ausx5i_Impl.ejbFindSQL(ejb_Lane_ausx5i_Impl.java:555)
at glog.util.remote.BaseEntityBean.ejbFindSQL(BaseEntityBean.java:787)
at glog.ejb.lane.ejb_Lane_ausx5i_Impl.ejbFindSQL(ejb_Lane_ausx5i_Impl.java:575)
at glog.ejb.lane.LaneBean.ejbFindByHnames(LaneBean.java:53)
at glog.ejb.lane.ejb_Lane_ausx5i_Impl.ejbFindByHnames(ejb_Lane_ausx5i_Impl.java:215)
at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
at weblogic.ejb20.manager.BeanManagedPersistenceManager.enumFinder(BeanManagedPersistenceManager.java:129)
at weblogic.ejb20.manager.BaseEntityManager.enumFinder(BaseEntityManager.java:1713)
at weblogic.ejb20.internal.EntityEJBHome.finder(EntityEJBHome.java:643)
at glog.ejb.lane.ejb_Lane_ausx5i_HomeImpl.findByHnames(ejb_Lane_ausx5i_HomeImpl.java:153)
at glog.business.rate.ratedistance.RateDistanceSession.getLaneByHnames(RateDistanceSession.java:822)
at glog.business.rate.ratedistance.RateDistanceSession.saveDistance(RateDistanceSession.java:627)
at glog.business.rate.ratedistance.RateDistanceSession.calcDistance(RateDistanceSession.java:258)
at glog.business.rate.ratedistance.RateDistanceSession.calculateDistance(RateDistanceSession.java:157)
at glog.business.action.RateActionExecutor.calcRateDistance(RateActionExecutor.java:174)
at glog.business.session.RateActionSessionBean.calcRateDistance(RateActionSessionBean.java:199)
at glog.business.session.RateActionSessionServerSideEJBWrapper.calcRateDistance(RateActionSessionServerSideEJBWrapper.java:220)
at glog.business.session.RateActionSessionHome_a6s4b5_EOImpl.calcRateDistance(RateActionSessionHome_a6s4b5_EOImpl.java:370)
at glog.business.session.RateActionSessionHome_a6s4b5_EOImpl_WLSkel.invoke(ILweblogic.rmi.spi.InboundRequest;Lweblogic.rmi.spi.OutboundResponse;Ljava.lang.Object;)Lweblogic.rmi.spi.OutboundResponse;(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:108)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)


STEPS
-----------------------
The issue can be reproduced at will with the following steps:

1- Login to OTM.
2- Go to Ask OTM About Distance And Time.
3- Fill in the following:

- Request Type: DISTANCE
- Rate Distance: Use a Lookup Rate Distance that use External Distance Engine (PcMiler).
Cache Control Type: Y
Java Class: glog.business.rate.ratedistance.external.PCMilerEngine

Parameters
BACKUP_WITH_LAT_LON: N
DEST_ADDRESS_TYPE: CITY_COUNTRY
HOST: pcmiler.host
PORT: pcmiler.port
ROUTE_TYPE: 0
SAME_SOURCE_DEST_DIST: 25 MI
SOURCE_ADDRESS_TYPE: CITY_COUNTRY
USE_DEFAULT_ROUTE_TYPE: Y
DEST_ADDRESS_TYPE: CITY_PROVINCE
SOURCE_ADDRESS_TYPE: CITY_PROVINCE
DEST_ADDRESS_TYPE: CITY_PROVINCE
SOURCE_ADDRESS_TYPE: CITY_PROVINCE

- Ship From City: L'ASSOMPTION
Province Code: QC
Country: CAN
- Ship To City: MONTREAL
Province Code: QC
Country: CAN

4- Click Find Distance/Time.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms