- Docs Home
- Getting started
- XL Release
- Overview
- Installation
- Get started with XL Release
- Manage your installation
- Model your releases
- Release your software
- Release overview
- Create and start releases
- Configure release properties
- Schedule releases
- Start a release from an archived release
- Start a release from a template
- Start a release from another release
- Create a release from a Git repository
- Add a phase to a release or template
- Add a task to a phase in a release or template
- Import a release template
- Trigger releases
- Work with running releases
- Work with plugins
- Using reports
- Customize XL Release
- API and scripting overview
- Create custom task types
- Create custom configuration types
- Create custom trigger types
- Extend the XL Release GUI
- Declare custom REST endpoints
- Create custom tiles
- Create custom task types
- Create custom configuration types
- Using scheduling in scripts to connect to long running jobs
- Implement a custom failure handler
- Listen to XL Release events
- Configuration settings
- Release manuals
- XL Deploy
- Overview
- Installation
- Get started with XL Deploy
- Manage your installation
- Logging
- Start XL Deploy
- Shut down XL Deploy
- Back up XL Deploy
- Upgrade XL Deploy
- The XL Deploy repository
- Configure the repository
- Configure XL Deploy to fetch artifacts from a Maven repository
- Manage security
- Manage system settings
- XL Deploy configuration files
- Configure failover for XL Deploy
- High availability with master-worker setup
- Add, start, and use workers
- Configure active/hot-standby mode
- Configure the task execution engine
- Troubleshoot the Jackrabbit JCR repository
- Configure XL Deploy client settings
- Enable XL Deploy maintenance mode
- Update the XL Deploy digital certificate
- The XL Deploy work directory
- Reclaim disk space on an XL Deploy server
- Hide internal XL Deploy server errors
- Automatically purge packages according to a user-defined policy
- Automatically purge the task archive according to a user-defined policy
- Specify file encoding on the XL Deploy server
- Automatically archive tasks according to a user-defined policy
- Best practices for maintaining XebiaLabs tools
- Connect to your infrastructure
- Set up applications and environments
- Prepare your application for XL Deploy
- Create a deployment package
- Define application dependencies
- Configure an environment
- Using placeholders and dictionaries
- Working with deployment packages
- Preparing your application for XL Deploy
- Understanding deployables and deployeds
- XL Deploy manifest format
- Deprecated XL Deploy manifest format
- Using the XL Deploy Manifest Editor
- Understanding archives and folders in XL Deploy
- Add an externally stored artifact to a package
- Extend the external artifact storage feature
- Add a package to XL Deploy
- Export a deployment package
- XL Deploy for developers
- Tips and tricks for deployment packages
- Deploy an application
- Deployment overview
- Understanding the XL Deploy planning phase
- Steps and step lists in XL Deploy
- Understanding tasks in XL Deploy
- Deploy an application
- Use tags to configure deployments
- Preview the deployment plan
- Use orchestration
- Working with deployments
- Stopping, aborting, or canceling a deployment
- Schedule a deployment
- Update a deployed application
- Staging artifacts in XL Deploy
- Monitor and reassign deployment tasks
- Make previously deployed property values available in a PowerShell script
- Undeploy an application or deprovision an environment
- Perform canary deployments
- Perform dark launch deployments
- Perform hot deployments
- Deploying an externally stored artifact using the XL Deploy CLI
- Schedule or reschedule a task
- Using the deployment pipeline view
- Deploy to remote datacenters
- Get started with provisioning
- Introduction to the release dashboard
- Work with the CLI
- Work with plugins
- Create an XL Deploy plugin
- Base plugins and the deployed object
- Implement custom XL Deploy plugpoints
- Add a checkpoint to a custom plugin
- Step options for the Generic, PowerShell, and Python plugins
- Sample Java-based XL Deploy plugin
- XL Deploy plugin tutorial
- Standard plugins
- Middleware plugins
- Apache Tomcat
- BizTalk
- F5 BIG-IP
- GlassFish
- IBM WebSphere Application Server
- IBM WebSphere Process Server
- IBM WebSphere Liberty Profile Server
- IBM WebSphere MQ
- JBoss Application Server 5 and 6
- JBoss Application Server 7 and up
- Microsoft Internet Information Services
- Microsoft Windows
- NetScaler
- Oracle Service Bus
- Oracle Service-Oriented Architecture
- Oracle WebLogic Application Server
- Provisioning plugins
- Container platform plugins
- Tools
- Community plugins
- Using control tasks
- Using the explorer
- Using XL Deploy reports
- Customize XL Deploy
- Release manuals
- DevOps as Code
- Get started with DevOps as Code
- Install the XL CLI
- XL CLI command reference
- Work with the YAML format
- YAML snippets reference
- Manage values in DevOps as Code
- Track progress using XL CLI output
- Manage risk profiles
- Manage XL Deploy permissions in YAML
- Manage XL Release permissions in YAML
- Manage XL Release folder permissions in YAML
- Tutorial: Managing an XL Release template as code
- Blueprints
- API and CI references
- Plugins
- XL Release plugins
- XL Deploy plugins
- Standard plugins
- Middleware plugins
- Apache Tomcat
- BizTalk
- F5 BIG-IP
- GlassFish
- IBM WebSphere Application Server
- IBM WebSphere Process Server
- IBM WebSphere Liberty Profile Server
- IBM WebSphere MQ
- JBoss Application Server 5 and 6
- JBoss Application Server 7 and up
- Microsoft Internet Information Services
- Microsoft Windows
- NetScaler
- Oracle Service Bus
- Oracle Service-Oriented Architecture
- Oracle WebLogic Application Server
- Provisioning plugins
- Container platform plugins
- Tools
- Community plugins
- Videos
- Community
- Fix Trackers
- Archive
Valid since:
XL Deploy 8.2.0
Move artifacts from the file system to a database
XL Deploy can be configured to store and retrieve artifacts in two local storage repository formats:
file
: The artifacts are stored on and retrieved from the file system.db
: The artifacts are stored in and retrieved from a relational database management system (RDBMS).
XL Deploy can only use one local artifact repository at any time. In the xl-deploy.conf
file, you can set the xl.repository.artifacts.type
configuration option for the storage repository to either "file"
or "db"
.
The configuration option xl.repository.artifacts.root
should be left untouched if you are moving artifacts from filesystem to database as the configuration value is needed by XL Deploy to resolve the artifacts path. You may remove xl.repository.artifacts.root
only after the move is completed.
Moving artifacts
When XL Deploy starts, it checks if any artifacts are stored in a storage format that is not configured. If artifacts are detected, XL Deploy checks the xl.repository.artifacts.allow-move
configuration option to see if the detected artifacts should be moved.
If xl.repository.artifacts.allow-move
is set to the default false
setting, XL Deploy does not start and throws an error. XL Deploy interprets this as an error made in the configuration.
To adjust the configuration: choose another local artifact repository type or set the xl.repository.artifacts.allow-move
configuration option to true
. After the configuration change, you must restart XL Deploy.
If xl.repository.artifacts.allow-move
is set to true
, XL Deploy starts up and moves the artifacts to the configured local artifact repository. XL Deploy uses both the configured local artifact repository (example: db
) and the not-configured local artifact repository (e.g. “file”) to retrieve artifacts during the move process. This makes the artifacts that are waiting to be moved, available to the system.
The process of migrating artifacts moves the data in small batches with pauses between every two batches. This enables the system to be used for normal tasks during the process.
Handling errors and process restart
If an artifact cannot be moved because an error occurs, a report is written in the log file and the process continues.
When XL Deploy is restarted during the process of moving the artifacts, the startup sequence as described above will be re-executed. If the xl.repository.artifacts.allow-move
option is set to true
, the move process will start again. Any artifacts that failed during the previous run, will be re-processed.
When the move process has completed successfully and all artifacts have been moved, a report is written in the log file and the xl.repository.artifacts.allow-move
option can be (re)set to false
.
When artifacts are moved from the file system, empty folders may remain in the configured xl.repository.artifacts.root
. These have no impact and can be deleted manually.
Files can remain on the file system, but are not detected as artifacts. This happens when files are no longer in use by the system, but have not been removed (example: files from application versions that are no longer used). The files can be removed after creating a backup.
If you are upgrading from a version that is earlier than XL Deploy 8.0.0, restart the server again after migration has finished to ensure that the artifacts are moved. Once the server has started you should see the following in your logs:
2018-08-17 15:19:54.323 [xl-scheduler-system-akka.actor.default-dispatcher-2] {sourceThread=xl-scheduler-system-akka.actor.default-dispatcher-4, akkaSource=akka://xl-scheduler-system/user/ArtifactsMover, sourceActorSystem=xl-scheduler-system, akkaTimestamp=13:19:54.320UTC} INFO c.x.d.r.s.a.m.ArtifactsMoverSupervisor - Found artifacts to move: 25 artifacts from file to db.
And a series of:
2018-08-17 15:19:54.588 [xl-scheduler-system-akka.actor.default-dispatcher-2] {} INFO c.x.d.r.s.a.m.FileToDbArtifactMover - Moved file artifact. [1 + 0 failed /25]
2018-08-17 15:19:54.716 [xl-scheduler-system-akka.actor.default-dispatcher-2] {} INFO c.x.d.r.s.a.m.FileToDbArtifactMover - Moved file artifact. [2 + 0 failed /25]
If xl.repository.artifacts.allow-move
is enabled but you do not see the above logs, restart the server. If after restarting the server you still do not see the above logs, contact support.