BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
sangeeta128
Fluorite | Level 6

We are trying to migrate from SAS 9.4 M7 to M8 version, we have client running on Windows citrix server (Windows Server 2019 Standard) and RHEL servers (RHEL 😎 for the metadata and application server.

The problem we are having is when we do import of the 'deployedflows' on the servers, it works fine when we import  from windows server but when we run the batch tool from linux servers it throws the below error at the end. We get a similar error when we also run the export command, all objects containing flows failed.

Also we noticed that if we run these commands using root access then it runs fine but with the sas user it gives this error.

Could someone help me on this please.

 

Import Command :

/opt/sas/bin/SASPlatformObjectFramework/9.4/ImportPackage -host "{{ newsasmetadataserver }}" -port 8561 -user "{{ sasadminaccount }}" -password "{{ sasadminpassword }}" -package /opt/sas/SASETL/Packages/ExportAll/ DeployedFlow.spk -target / -includeACL -subprop /opt/sas/SASETL/Packages/ImportProperty.subprop -preservePaths -disableX11 -log /opt/sas/SASETL/Packages/ExportAll/ImportPackage_DeployedFlow.spk.log

 

Error :

 

******** Importing Metadata ********

Including access controls during import.

Metadata imported successfully.

******** Importing Properties ********

******** Adjusting Metadata ********

Updating Deployed flow objects.

******** Importing Content ********

Importing content for Deployed flow objects.

The import process has finished successfully.

For more information, view the import log file: /opt/sas/SASETL/Packages/ExportAll/ImportPackage_DeployedFlow.spk.log

java.lang.NoClassDefFoundError: com/platform/LSFJobFlow/api/JFException

        at com.sas.scheduler.api.oma.MetaUtilities.getSchedulingServer(MetaUtilities.java:1941)

        at com.sas.scheduler.api.oma.MetaUtilities.getSchedulingServer(MetaUtilities.java:1790)

        at com.sas.scheduler.api.oma.MetaUtilities.getSchedulingServer(MetaUtilities.java:1764)

        at com.sas.scheduler.api.oma.DeployedFlow.initializeFromJFJob(DeployedFlow.java:12270)

        at com.sas.scheduler.api.oma.DeployedFlow.<init>(DeployedFlow.java:647)

        at com.sas.metadata.logical.scheduler.flow.DeployedFlowImportListener.importContent(DeployedFlowImportListener.java:330)

        at com.sas.metadata.promotion.ImportHandler.importContent(ImportHandler.java:1112)

        at com.sas.metadata.promotion.ImportHandler.runImport(ImportHandler.java:731)

        at com.sas.metadata.promotion.BatchImporter.importPackage(BatchImporter.java:666)

        at com.sas.metadata.promotion.BatchImporter.main(BatchImporter.java:861)

Caused by: java.lang.ClassNotFoundException: com.platform.LSFJobFlow.api.JFException

        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)

        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)

        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)

        at com.sas.app.AppClassLoader.findClass(AppClassLoader.java:497)

        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)

        at com.sas.app.AppClassLoader.loadClass(AppClassLoader.java:632)

        at com.sas.app.AppClassLoader.loadClass(AppClassLoader.java:611)

 

 

Export Command :

/opt/sas/bin/SASPlatformObjectFramework/9.4/ExportPackage -package /opt/sas/SASETL/Packages/ Global_System.spk -objects "Global System(Folder)" -disableX11 -host "{{ sasmetadataserver }}" -port 8561 -user "{{ sasadminaccount }}" -password "{{ sasadminpassword }}" -modified -since 20230601" -before "20231016" -log /opt/sas/SASETL/Global/Lev1/Log/ExportPackage_Global.log

 

Error:

 

******** Exporting Metadata ********

Metadata exported successfully.

******** Exporting Content ********

Exporting content for Deployed flow objects.

The export process has finished successfully.

For more information, view the export log file: /opt/sas/SASETL/Global/Lev1/Log/ExportPackage_test.log

java.lang.NoClassDefFoundError: com/platform/LSFJobFlow/api/JFException

        at com.sas.scheduler.api.oma.MetaUtilities.getSchedulingServer(MetaUtilities.java:1941)

        at com.sas.scheduler.api.oma.MetaUtilities.getSchedulingServer(MetaUtilities.java:1790)

        at com.sas.scheduler.api.oma.MetaUtilities.getSchedulingServer(MetaUtilities.java:1764)

        at com.sas.scheduler.api.oma.DeployedFlow.initializeFromJFJob(DeployedFlow.java:12270)

        at com.sas.scheduler.api.oma.DeployedFlow.<init>(DeployedFlow.java:647)

        at com.sas.metadata.logical.scheduler.flow.DeployedFlowExportListener.exportContent(DeployedFlowExportListener.java:91)

        at com.sas.metadata.promotion.ExportHandler.exportContent(ExportHandler.java:596)

        at com.sas.metadata.promotion.ExportHandler.runExport(ExportHandler.java:519)

        at com.sas.metadata.promotion.BatchExporter.exportPackage(BatchExporter.java:684)

        at com.sas.metadata.promotion.BatchExporter.main(BatchExporter.java:1181)

Caused by: java.lang.ClassNotFoundException: com.platform.LSFJobFlow.api.JFException

        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)

        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)

        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)

        at com.sas.app.AppClassLoader.findClass(AppClassLoader.java:497)

        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)

        at com.sas.app.AppClassLoader.loadClass(AppClassLoader.java:632)

        at com.sas.app.AppClassLoader.loadClass(AppClassLoader.java:611)

1 ACCEPTED SOLUTION

Accepted Solutions
sangeeta128
Fluorite | Level 6

Hi @gwootton 

We found the problem, thank you for leading us to the right location to check. 

The permissions of the jobflow.jar was not proper that's the reason it was running with root user but not the user we were using.

Thank you very much!

View solution in original post

7 REPLIES 7
gwootton
SAS Super FREQ
Does your ImportPackage.ini/ExportPackage.ini include this option?

-Dsas.app.launch.picklist=<LAUNCHERDIR>/platform.picklist
--
Greg Wootton | Principal Systems Technical Support Engineer
sangeeta128
Fluorite | Level 6

Hi, Yes its included 

 

[properties]
MASTERPROP=/opt/sas/bin/sassw.config

[default]
startdir=<WORKINGDIR>
applogloc=
launchercmd=<JREHOME>
mode=console
JavaArgs_1=-Xmx512M
JavaArgs_2=-Dsas.app.class.dirs=<LAUNCHERDIR>
JavaArgs_3=-Dsas.app.class.path=<LAUNCHERDIR>:.:/opt/sas/bin/SASPlatformObjectFramework/9.4/build
JavaArgs_4=-Dsas.services.information.types.path=<LAUNCHERDIR>/plugins
JavaArgs_5=-Dsas.app.launch.picklist=<LAUNCHERDIR>/platform.picklist
JavaArgs_6=-Djava.system.class.loader=com.sas.app.AppClassLoader
JavaArgs_7=-Dsas.ext.config=<SASHOME>/sas.java.ext.config
JavaArgs_8=-Dsas.app.launch.config=picklist
JavaArgs_9=-Dsas.app.repository.path=<VJRHOME>/eclipse
JavaArgs_10=-Dsas.promotion.deployedjob.includesourcecode=false
JavaArgs_11=-Dsas.promotion.columns.deletetargetcolumns=true
JavaArgs_12=
Classpath=-cp <VJRHOME>/eclipse/plugins/sas.launcher.jar
MainClass=com.sas.metadata.promotion.BatchExporter

gwootton
SAS Super FREQ
The platform.picklist file is the list of jars to load that includes the com.platform.LSFJobFlow class. Check the version of PlatformComputing_PM listed in the platform.picklist and confirm that version is present in <SASHome>/SASVersionedJarRepository/eclipse/plugins/, and that directory includes jobflow.jar.
--
Greg Wootton | Principal Systems Technical Support Engineer
sangeeta128
Fluorite | Level 6

yes the version matches.

 

Version from platform.pickup -

 

name=PlatformComputing_PM
version=12.2.0.c_SAS_20220609144930

 

This version also exists in /opt/sas/bin/SASVersionedJarRepository/eclipse/plugins/ 

 

/opt/sas/bin/SASVersionedJarRepository/eclipse/plugins/PlatformComputing_PM_12.2.0.c_SAS_20220609144930/META-INF> cat MANIFEST.MF
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 14.2-b01 (Sun Microsystems Inc.)
Export-Package: cryptix.tools,cryptix.util.io,cryptix.provider.mac,cry
ptix.provider.padding,cryptix.util.gui,com.platform.LSFJobFlow.ui,org
.xmlpull.mxp1,cryptix.util.test,org.xmlpull.mxp1_serializer,xjava.lan
g,com.platform.LSFJobFlow.ui.model,javax.xml.namespace,org.xmlpull.v1
.wrapper.classic,org.xmlpull.v1.sax2,org.xmlpull.v1.builder.adapter,o
rg.xmlpull.v1.util,cryptix.test,com.platform.SASLogin,com.platform.LS
FJobFlow.api,org.xmlpull.v1.dom2_builder,cryptix.provider.cipher,com.
platform.LSF.security,netscape.security,cryptix.util.math,org.xmlpull
.v1,org.xmlpull.v1.builder,xjava.security,cryptix.provider.rsa,crypti
x.provider.key,cryptix,xjava.security.interfaces,cryptix.provider.mod
e,cryptix.util.core,cryptix.provider.elgamal,cryptix.util.checksum,cr
yptix.provider.md,cryptix.provider,org.xmlpull.v1.wrapper,org.xmlpull
.v1.parser_pool,com.platform.LSFJobFlow.ui.resources,org.xmlpull.v1.b
uilder.impl,cryptix.util.mime
Eclipse-LazyStart: true
Bundle-ClassPath: jobflow.jar,jobflowui.jar,lsfsecurity.jar,saslogin.j
ar,xpp3-1.1.4c.jar
Bundle-Version: 12.2.0.c_SAS_20220609144930
Eclipse-BuddyPolicy: registered
Bundle-Name: PlatformComputing_PM
Bundle-ManifestVersion: 2
Bundle-SymbolicName: PlatformComputing_PM
Specification-Version: 12.2.0.c_SAS_20220609144930

 

sangeeta128
Fluorite | Level 6

Hi @gwootton 

We found the problem, thank you for leading us to the right location to check. 

The permissions of the jobflow.jar was not proper that's the reason it was running with root user but not the user we were using.

Thank you very much!

Sajid01
Meteorite | Level 14

The error  says ClassNotFoundException:.
Please make sure the java is accessible\le to the SAS user running this job. JAVA_HOME must be included in his path.
This can be easily checked by running env in the bash shell.

 

sangeeta128
Fluorite | Level 6

I'm having this issue only when I try to import/export the objects with type "DeployedFlow". Other import/exports works fine with the SAS user so I guess that concludes that the Java is accessible otherwise all import/exports would have failed.

suga badge.PNGThe SAS Users Group for Administrators (SUGA) is open to all SAS administrators and architects who install, update, manage or maintain a SAS deployment. 

Join SUGA 

Get Started with SAS Information Catalog in SAS Viya

SAS technical trainer Erin Winters shows you how to explore assets, create new data discovery agents, schedule data discovery agents, and much more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 7 replies
  • 1305 views
  • 2 likes
  • 3 in conversation